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


Log in to reply