TinyXML2 - Encoding



  • Hi,

    ich versuche mit TinyXML2 eine XML-Datei einzulesen, die u.A. Umlaute enthällt.

    Die erste Zeile der XML-Datei lautet

    <?xml version="1.0" encoding="UTF-8"?>
    

    In meinem Programm wird aber (auch im Debugger) aus Ö zB

    ö

    Wenn ich die XML-Datei im Notepad anzeigen lassen, werden die Umlaute noch richtig dargetellt. Die XML-Datei wurde auch als UTF8 gespeichert.

    Als Zeichensatz verwendet das Programm Unicode.

    Wie kann ich bei TinyXML2 die Codierung festlegen?

    Gruß



  • Sicher dass es kein Problem bezüglich der Ausgabe der Daten (auch im Debugger) gibt ?
    Lies die XML einfach mal ein und schreib den Text wieder in eine Datei mit UTF-8 und schau ob der string richtig ist.



  • Hi,

    ok, wenn ich den String wieder in eine XML-Datei schreibe steht er richtig drin.

    Woran kann das also liegen?

    Btw: Ich geb den String in einer wxWidgets Anwendung aus.

    Edit: Wenn ich Umlaute direkt ausgebe, werden sie auch richtig angezeigt.

    Gruß



  • Ist nur 'ne Frage der Interpretation. Das kleine ö ist in UTF-8 0xC3B6 und erscheint als ISO8859-1/CP1252 gelesen halt als "ö".



  • Hi,

    ja, aber wo muss kann ich die Codierung umstellen?

    Das Projekt läuft mit Unicode.

    Gruß



  • Schwarzefee schrieb:

    aber wo muss kann ich die Codierung umstellen?

    Ich kenne mich mit wxWidgets nicht aus, aber

    http://docs.wxwidgets.org/trunk/overview_string.html schrieb:

    wxWidgets can be compiled with wxUSE_UNICODE_UTF8=1 to use UTF-8.

    Sicher gibt es da auch noch ein paar Konvertierungsfunktionen die dir helfen können. Guck halt mal in die Doku von wxWidgets oder von deiner OS-API.
    Windows bietet z.B. MultiByteToWideChar() .



  • Hi,

    wenn ich in wxWidgets direkt einen Umlaut anzeigen lasse, funktioniert das ja auch.

    Nur wenn ich den Text mit TinyXML2 einlese und ausgebe, funktioniert es nicht.

    Gruß


Log in to reply