Thema: Delphi TXMLDocument und Umlaute

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

Re: TXMLDocument und Umlaute

  Alt 8. Jul 2009, 12:24
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat