Unicode verwenden?



  • Hallo forum,
    wie kann ich Unicode zeichen im Programm verwenden? Also auch Kirilische zeichen oder Hebreische usw. z.B. ich habe eine Textdatei in der einige beriffe stehen, manche sind lateinisch und manche z.B. Hebreisch?! 😕
    Wenn die Datei dann gelesen wird sollen die Unicodezeichen auch dargestellt werden, oder die Oberfläche des Dialogs, brauche ich dafür extra Includedateien oder..? 😕

    mfg
    Mirsad



  • Wird hier mind. einmal im Monat im Forum diskutiert: in der Standard-Lib von C++ gibt es keinen Unicode-Support. Du mußt dich einer anderen Library bedienen. Entweder Betriebssystem-spezifisch, z.B. die API und Libs von Windows. Unter Linux ist das sicherlich auch kein Problem, in de aktuellen c't ist ein Bericht darüber. Ansonst unterstützen auch Qt, wxWidgets den Unicode, die GTK bestimmt auch.



  • Hallo Artchi,
    danke für den Hinweis, ich fand leider keinen Beitrag auf dieses Thema deswegen mein Posting! Welche API's brauche ich dafür? 😕 🤡

    Grüsse
    Mirsad



  • Ich kenne mich mit Unicode kaum aus.

    Aber das was std::wstring bietet wird unter Windows als Unicode bezeichnet.



  • @Mirsad! Die APIs hab ich doch aufgezählt. Entweder eine von Windows (wenn du eh nur für Win programmierst), oder eine von den anderen Libs (wxWidgets, Qt, GTK u.a.). Keine Ahnung womit du gerade deine Software entwickelst oder zukünftig entwickeln willst.



  • @artchi schrieb:

    Ich kenne mich mit Unicode kaum aus.

    Aber das was std::wstring bietet wird unter Windows als Unicode bezeichnet.

    std::wstring speichert wchar, damit kann man mehr als 8bit große Zeichen speichern - richtig. Aber das war es auch schon! Zu Unicode gehört ein wenig mehr als >8 Bit Zeichen. Du mußt die Zeichen ja auch irgendwie auf den Screen bekommen. Du mußt auch zwischen den Sprachen schalten können. Will ich japanisch darstellen? Will ich russisch darstellen? Wie speichere ich das ganze in eine Datei ab? WIe kann der User die Zeichen (z.B. chinesisch) überhaupt eingeben? Usw.

    Windows NT (also auch 2000 und XP) arbeiten intern nur mit 16 bit Unicode. Da kann man wstring in seinem Programm zur Datenhaltung sicherlich benutzen. Aber mehr auch nicht. Um die Zeichen auf den Screen darzustellen, muß man dann aber die WinAPI oder einen der vielen Wrapper benutzen (wxWidgets, MFC usw.).



  • Hallo,
    das war jetzt aber ausführlich 🙂 👍 , danke Artchi, ich werde die winapi zur unicode genau anschauen, es ist ein win(mfc) programm das auch andere zeichen darstellen soll, midestens rusisch und hebreisch, auser der europeischen zeichen?! 🤡
    Ich hab auch die neue c't angeschaut, so wie ich den beitrag verstanden habe bezieht sich das in der c't nur auf linux? 😕

    grüsse
    Mirsad



  • Ja, der c't Beitrag bezieht sich nur auf Linux.

    Die MFC kann bzw. müsste auch Unicode können, wenn es nicht die MFC6 kann, dann auf jeden Fall die MFC7.1 (aus VC++ 2003).



  • CString im UNICODE Modus aus der MFC arbeitet wie std::wstring.


Anmelden zum Antworten