PugiXML "Problemchen"



  • Hallo Leute,

    ich nutze seit ein paar Tagen PugiXML. Ich lese eine automatisch generierte XML-Datei aus. Das funktioniert auch soweit. Ich habe nur Probleme mit dem Format dieser XML-Datei. Dort kommt zum Beispiel das "ü" drin vor.
    Die gesamte Datei ist im Prinzip UTF8, allerdings gibt es für dieses eine Zeichen 2 Byte. Habs mir im Hexeditor angeschaut. Zurück ist also:
    Z | 5A
    u | 75
    r | 72
    ü | C3BC
    c | 63
    k | 6B

    Ich verstehe schon, dass ich als Text dann Zurück bekomme. Allerdings kommem Word und Notepad2 darauf klar. Es muss also eine Möglichkeit geben mir ein ü anzuzeigen obwohl die Datei offensichtlich irgendein Mischformat hat.
    Hat jemand eine Idee?
    P.S.: Der Export der XML-Datei der SPS kann nicht angepasst werden.



  • MrThorst schrieb:

    Die gesamte Datei ist im Prinzip UTF8

    Das ist UTF8.

    Welches Programm das auch immer anzeigen soll muß eben UTF-8 vestehen.
    Oder Du wandelst es vorher in eine andere Kodierung deiner Wahl.



  • Ich kann das bei PugiXML angeben. Er erkennt auch Defaultmäßig UTF-8.
    Folgendermaßen sieht mein Code an der stelle aus:

    const pugi::char_t* pTest = languages.text().get();

    char_t ist definiert als typedef PUGIXML_CHAR char_t;
    und
    #ifdef PUGIXML_WCHAR_MODE
    # define PUGIXML_TEXT(t) L ## t
    # define PUGIXML_CHAR wchar_t
    #else
    # define PUGIXML_TEXT(t) t
    # define PUGIXML_CHAR char
    #endif

    wobei der wchar_mode nicht aktiv ist.
    Muss ich den vielleicht aktivieren?
    Wenn ja wie mach ichn das? 🙂



  • Was willst Du denn konkret erreichen?



  • Ich möchte, dass das ü auch als ü angzeigt wird und nicht als Kauderweltsch.
    Hab aber das Problem gefunden. Es gibt eine PugiXMLConfig.hpp wo man die Widecharacter Option aktivieren kann. Dann gehts.
    Jetzt wird ü auch als ü angzeigt. Schon seltsam, dass das nicht standardmäßig aktiviert ist.


Anmelden zum Antworten