Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Probleme mit XML Encoding

  Alt 25. Jan 2018, 15:50
Leider der gleiche Fehler
Das ist auch richtig so.

Xml.Encoding hat garnichts mit dem Einlesen zu tun.
Da steht das Encoding drin, was beim Auslesen der XML genutzt wurde, bzw. welches beim Speichern verwendet wird.

Erstmal ist diese XML nicht valide aka "ungültig", womit der Fehler völlig korrekt ist.
Es gilt das Encoding via BOM (für den ersten XML-Node), wenn kein BOM dann UTF-8. Und gibt es eine Processing Instruction (<?xml ...?> ), dann gilt nach ihr das darin definierte Encoding.
Als Ausnahme gelten UTF-16 LE und BE, welche auch ohne BOM am ersten < erkannt werden können. (#0'<' oder '<'#0)
Ohne Angabe eines Encoding sind XML immer UTF-8, also liegt der Fehler beim schreibenden Programm, wenn es ein falsches Encoding verwendet, als es (nicht) in der XML definiert hat.

Kann man beim LoadFromFile ein TEncoding-Parameter übergeben werden, um das Default-Encoding zu ändern?
Wenn nicht, dann mußt du die Datei selber einlesen, dabei das gewünschte TEncoding verwenden (bei normalen Textdateien ist es ANSI, unter Windows) und dann als String via LoadXML (oder wie das hieß) laden.
> Lesen mit TStringList oder Delphi-Referenz durchsuchenTFile.ReadAllText
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Jan 2018 um 15:56 Uhr)
  Mit Zitat antworten Zitat