Zitat von
himitsu:
oder gib dem SaveToFile der TStringList die Codierung mit, also sag TStringList expliziet, daß es als UTF-8 Speichern soll
Das hilft, danke! Es wundert den Laien natürlich, dass man das Encoding noch mal angeben muss - aber mit Delphi 2009 wird ja aus dem Stringlist-Text ein UnicodeString. Und der weiss natürlich nichts vom Encoding des dahinterstehenden
XML Dokuments.
Tests mit kyrillischem Encoding des Dokuments in Kombination mit TEncoding.<irgendwas exotisches> beim SaveToFile kommen dann später
Der minimale Code ist dann:
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
xmlDoc: IXMLDocument;
N: IXmlNode;
begin
xmlDoc := TxmlDocument.Create(nil);
xmlDoc.Active := True;
N := xmlDoc.AddChild('a');
N.Text := 'äöü';
// xmlDoc.XML.SaveToFile('test.xml', TEncoding.UTF8);
// noch kürzer:
xmlDoc.SaveToFile('test.xml');
end;