Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

AW: Ausgabe eines UTF8-Strings in UTF8-Darstellung

  Alt 26. Nov 2012, 17:40
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Nov 2012 um 17:47 Uhr)
  Mit Zitat antworten Zitat