Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#4

AW: XML Header Neu ohne Zeichensatzangabe macht Probleme

  Alt 30. Apr 2025, 08:44
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat