unicode?



  • Hi
    möchte gerne ein cpp in unicode konvertieren, hab dazu auch schon bisschen im netz geforscht, gefunden habe ich folgendes

    - alle char-Definitionen für Zeichen und Strings durch TCHAR ersetzt
    (für nicht UNICODE gilt typedef char = TCHAR, für UNICODE steht TCHAR für wchar_t).
    - char*- oder LPSTR-Definitionen durch LPTSTR ersetzt.
    - TEXT-Makros eingefügt vor “Ascii-Text“ TEXT(“Ascii-Text“) und vor einzelnen Zeichen ’a’ TEXT(’a’)
    - sprintf()-Funktionen durch _stprintf()-Aufrufe, vsprintf()-Funktionen durch _vstprintf()-Aufrufe und strncmp()-Funktionen durch _tcsncmp()-Aufrufe ersetzt (Definitionen in tchar.h).
    - _itoa()- und _ltoa()-Funktionen durch _itot()-Aufrufe und atoi()- und atol()-Funktionen durch _ttoi()-Aufrufe ersetzt (Definitionen in tchar.h).
    - alle new-, global- und lokal-Speicheranforderungen bei TCHAR-Typ auf die Anforderungsgröße überprüft.

    ist ja schön und gut jetzt frag ich mich allerdings was denn z.b. mit einem unsigned/signed char passiert ? ändern kann ich das nämlich nicht ienfach in unsigned TCHAR da meckert dann der compiler (in dem falle MS visual ++ 6.0)

    kann mir da jemenad mal nen tip oder besser noch antwort liefern 🙂

    grüße
    beASt



  • Wenn du Unicode benutzen willst, dann benutze den Typ wchar_t (bzw. std::wstring). Denke dran, dass du Unicode Literales mit einem L einleitest

    zB.

    wchar_t *str=L"Hallo Welt";
    wchar_t ch=L'ü';
    

    Wichtig ist auch, dass du andere Funktionen zum bearbeiten der Strings etc. nimmst (naja, in wirklichkeit sind nur die Template-Parameter anders :)) std::wcout,std::wcerr und std::wcin zB.

    ⚠ aber wchar_t entspricht nicht auf jedem System dem kompletten Unicode (UCS-4). Auf Windows Systemen ist wchar_t AFAIK nur UCS-2 kompatibel (also solltest du Probleme bekommen, wenn du zB. Klingonen Zeichen oder Tolkiens TENGWAR benutzen willst ;))



  • kingruedi schrieb:

    (also solltest du Probleme bekommen, wenn du zB. Klingonen Zeichen oder Tolkiens TENGWAR benutzen willst ;))

    *lol*

    @beast: Pass aber bei einigen Windows-Funktionen auf, unter 98 gibt es da einige Probleme mit Unicode. Aber amsonsten sehr lobenswert, auf Unicode umzusteigen 🙂


Anmelden zum Antworten