XML parsing problem...



  • Hallo,
    I'm parsing XML files in my c++ program using SUSE 9.1...

    The problem I got is, that reading in German "ö", "ä", "ü" characters are misinterpreted and appear on the screen as "ä" = "ä".
    The XML file is encoded as UFT-8.
    I found an article on the web saying that this happens, if the UTF-8 bytes are interpreted as ISO-8859-1.

    Any ideas how to solve this?
    Any help is appriciated...

    -ODY



  • du kannst hier ruhig auf deutsch fragen.

    Du kannst zB. mit Iconv (man: iconv_open(3) etc.) Strings in verschiedene Zeichenformate umwandeln. Ansonsten kannst du auch die Teminal-Emulation auf eine UTF-8 kompatible umstellen oä.

    HTH



  • na deutsch ist mir auch lieber... ich war so in dem trott, da ich grad in schottland im praxissemster bin...

    ... also das problem ist, dass selbst im parser eine ausgabe von
    std::cout in der bash "ö" ausgibt, aber dann wenn ich den string durch die freetype lib jage, kommt auf dem 3D-surface dieses zeichen an anstelle des "ö".

    hast du ein beispiel zur benutzung des von iconv_open?

    was genau meinst du mit der Terminal-Emulation?

    vielen Dank!!!



  • Achso, dann lag es gar nicht an deiner Terminal Emulation, wenn es im Terminal klappt.

    Das Problem ist, dass du bei FreeType2 das falsche Encoding eingestellt hast.
    http://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Select_Charmap

    ⚠ denk dran, dass UTF-8 ein Multibyte Zeichensatz ist und dass du mist std::basic_string oder den C String Funktionen da Probleme bekommen kannst.
    http://www.cl.cam.ac.uk/~mgk25/unicode.html


Anmelden zum Antworten