Delphi-Quellcode:
var
U: UTF8String;
R: RawByteString;
S: string;
U := 'irgendwas mit ä'; // Delphi konvertiert das alleine, da bei diesem "AnsiString"-Typen die CodePage auf UTF-8 steht
R := U;
SetCodePage(R, $FFFF, False); // R hat die CodePage kopiert bekommen, daher explizit auf RAW umstellen
S := R; // *1
ShowMessage(S);
// kurz
R := UTF8Encode('irgendwas mit ä');
SetCodePage(R, $FFFF, False); // R hat die CodePage kopiert bekommen, daher explizit auf RAW umstellen
ShowMessage(R); // *1
1) R muß auf RAW stehen, da Delphi sonst denkt es sei was Anderes und würde es dann nach
Unicode umwandeln.
Bei UTF-8 wäre nun alles umsonst gewesen und bei
ANSI würde er die UTF-8-Zeichen im String schrotten, da er alles zwischen #128 und #255 nach
Unicode konvertieren würde, entsprechend der
ANSI-CodePage.
Oder du nutzt TEncoding für die Umwandlung.
[info]
ich hoffe der nicht ausprobierte Code funktioniert so wie gedacht