In der System-
Unit verstecken sich ein paar UTF8-Funktionen, damit kannst du einfach die Strings zwischen
Unicode (WideString) und UTF8 (AnsiString) umwandeln.
Delphi-Quellcode:
var A: AnsiString;
S: WideString;
begin
S :=
{dein Unicodetext};
// nach UFT-8 kodieren, inkl. BOM
A := #$EF#$BB#$BF + UTF8Encode(S);
// oder so, ist bestimmt noch keinem aufgefallen, aber die BOM sind
// alle jeweils DIE UNICODE-Markierung, welche in der
// entsprechenden Kodierung mitgespeichert wurden
A := UTF8Encode(#$FEFF + S);
// bezüglich Delphi 2009 sollte es aber besser schon so gemacht
// werden, wenn man das BOM schon kodiert angeben will ... nicht
// daß dort das Delphi-Unicode alles kaputt macht und die Bytes
// als ANSI ansieht und nach Unicode übersetzt
A := #$00EF#$00BB#$00BF + UTF8Encode(S);
// ja und nun muß man das A nur noch abspeichern
(wie man den String dann in einen Stream reinbekommt, daß weißt du ja bestimmt schon)