Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: UTF8 in Stringlist -> Suchen und ersetzen -> UTF8

  Alt 8. Mai 2009, 18:26
BOM = Byte Order Mark
ist eine Identifikationseichenfolge am Anfang einer Textdatei

und ich weiß jetzt nicht, ob M$ dieses in die XML reinbaut, da bei XML UTF-8 die Standardkodierung ist und es nicht angegeben werden muß

für UTF-8 ist das BOM
#$EF#$BB#$BF bzw. #239#187#191 für die ersten 3 Zeichen/Byte der Textdatei

und nach der UFT-8 Dekodierung wäre somit das 1. Zeichen im Unicode ein #$FEFF

falls du praktisch nach einem UTF8Decode ein zusätzliches "komisches" Zeichen am Anfang (vorm ersten < ) stehen hast, dann war ein BOM enthalten. (vorm Decodieren also 3 "komische" Zeichen)

Delphi-Quellcode:
SL.LoadFormFile(...);
SL.Text := UTF8Decode(SL.Text);
...
SL.Text := UTF8Encode(SL.Text);
SL.SaveToFile(...);
[info]
Achtung: ab D2009 geht sowas hier nicht mehr, da dort das Unicode der Strings und Komponenten in die Quere kommt und die UTF8-Kodierung schrotten täte, wenn es über einen UnicodeString umgeleitet würde!
$2B or not $2B
  Mit Zitat antworten Zitat