C++ - XML-Dateikodierung herausfinden
-
Hallo,
bei der Arbeit an meinem derzeitigen Projekt (MS-VC++ unter Windows XP) bin ich auf ein interessantes Problem gestoßen.
Ich lade XML-Dateien von verschiedenen Webadressen herunter und möchte sie anschließend parsen. Um parsen zu können, müßte ich zunächst wissen, in welcher Zeichenkodierung die empfangenen Daten vorliegen (UTF-16, UTF-8, ISO 8859-x usw.)
Dazu gibt es ja eigentlich das "encoding"-Attribut in der XML-Deklaration. Um das jedoch mit Stringsuchfunktionen auslesen zu können, müßte ich die Zeichenkodierung bereits kennen, da man für Unicode- und MBCS-Strings ja unterschiedliche Funktionen einsetzt.
Außerdem sollte sich anhand eines Bytemarks am Beginn der Datei zumindest nach UTF-16 und UTF-8 unterscheiden lassen. Die meisten Dateien, die ich bisher heruntergeladen habe, enthalten jedoch kein Bytemark. Ich vermute mal, daß das "encoding"-Attribut auch nicht in allen Fällen unbedingt vorhanden ist.
Wie kann man da vorgehen, um die Zeichenkodierung einigermaßen verläßlich zu bestimmen?
Vielen Dank im voraus für praktikable Vorschläge,
VV
-
-
Sehr hübsch - genau das, was ich gebraucht habe!
Thanks a lot,
VV