Komische zeichen



  • Hey,
    in meinem programm das ich grade schreibe werden manche Zeichen in einem Listview nicht richtig angezeigt. Es kommt anstatt einem ü z.B. ein ü raus. Liegt das daran das programm kein unicode benutzt?

    Mfg, Martek



  • Vermutlich... und vermutlich liest Du den String irgendwoher und gibst ihn dann aus.. und in beiden Fällen wird ein unterschiedliches Encoding verwedet... das gleiche kann auch passieren, wenn Du Umlaute im Source-Code reinschreibst...



  • Ja die zeichen kommen aus ner m4a Datei. Ich probier mal das programm in ein unicode programm umzuschreiben...

    Danke schonmal 🙂



  • Und Du musst die Datei mit dem *richtigen* Encoding einlesen!



  • Jetzt probier ich gerade das Programm in ein Unicode programm umzuschreiben.
    Habe ganz am Anfang

    #define UNICODE
    

    definiert, bekomme aber jetzt bei strlen() eine fehlermeldung. Er sagt ich solle anstatt "WCHAR*" "const char*" nehmen. Ich dachte dadurch das ich Unicode definiere, würden die funktionen auf wchar umgestellt?

    Mfg, Markus



  • Gibts nicht wstrlen?

    Ansonsten, implementier es halt selbst.

    Ich dachte dadurch das ich Unicode definiere, würden die funktionen auf wchar umgestellt?

    Die WinAPI wird umgestellt.



  • martek schrieb:

    Ich dachte dadurch das ich Unicode definiere, würden die funktionen auf wchar umgestellt?

    Schon, aber Standardfunktionen umschreiben geht schlecht. Auch die WinAPI ist da nicht konsequent, selbst Funktionen die explizit WCHARs erwarten sind öfter mal als char * deklariert. Umcasten und nicht weiter drüber nachdenken™



  • Du solltest alle String-Funktion auf TCHAR umstellen!

    strlen => _tcslen
    usw.
    Ist alles in der Doku zu "strlen" (und den anderen Funktion) aufgeführt, was man als TCHAR-Variante verwenden soll!

    Casten hilft Dir nie!


Anmelden zum Antworten