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!