in dem
XML-Header <?
xml version="1.0"?> fehlt die Codierung und ist das äöü als
Ansi oder UTF-8 in der Datei (ich vermute mal kein UTF-8, da
MSXML TStringlist per Standard keinen BOM speichert und ohne UTF8-Kennung hätte der Editor die Zeichen ja wohl nicht decodiert)
und wenn die Zeichen als
Ansi in der Dateistehen und
XML per Standard (ohne Codierungsangabe) UTF-8 Codiert ist, dann entsprechen die Byte-Codes von äöü keinem UTF-8-Zeichen, also die Fehlermeldung wäre korrekt
[add]
aber warum gehst du über die StringList?
Delphi-Quellcode:
var
xmlDoc: IXMLDocument;
N: IXmlNode;
begin
xmlDoc := TxmlDocument.Create(nil);
xmlDoc.Active := True;
xmlDoc.Encoding := 'UTF-8';
N := xmlDoc.AddChild('a');
N.Text := 'äöü';
xmlDoc.XML.('test.xml');
end;
oder gib dem SaveToFile der TStringList die Codierung mit, also sag TStringList expliziet, daß es als UTF-8 Speichern soll