Daran hat sich eigentlich gar nichts geändert. Wenn du LoadFromXML + SaveToXML nutzt, wird das Encoding nicht gelesen und geschrieben, wenn du LoadFromFile oder LoadFromStream und die entsprechenden Speicherroutinen verwendest, wird es verwendet. Beispiel:
Delphi-Quellcode:
var
XmlDoc: IXmlDocument;
Stream: TStringStream;
begin
XmlDoc := TXmlDocument.Create(
nil);
try
Stream := TStringStream.Create('
<?xml version="1.0" encoding="utf-8"?><test></test>', TEncoding.UTF8);
try
XmlDoc.LoadFromStream(Stream);
finally
Stream.Free;
end;
Stream := TStringStream.Create('
', TEncoding.UTF8);
try
XmlDoc.SaveToStream(Stream);
ShowMessage(Stream.DataString);
finally
Stream.Free;
end;
finally
XmlDoc :=
nil;
end;
end;
Das Verhalten ist in XE2 und Delphi 11 identisch.