UNICODE Zeichen per TextOut() ausgeben
-
Hi,
ich versuche per TextOut() ein Zeichen über seinen UNICODE - Wert auszugeben (also zB c2a9 für das Copyright Zeichen). Die Codes habe ich hier http://www.utf8-zeichentabelle.de/ gefunden.
Wie muss ich das jetzt schreiben, dass er des entsprechende UNICODE Zeichen ausgibt und nicht den Wert den ich eingebe?
Bei TextOut(hDC, 0, 0, L"0xc2a9", wcslen(L"0xc2a9")); gibt er 0xc2a9 aus. Wie muss ich das Zeichen formatieren, sodass er das Copyright Zeichen ausgibt?Gruß
-
Ich mach das immer so:
wchar_t name2[] = {'B', 0x61, 0x0308, 0x0}; // \BäDu kannst es aber auch so schreiben:
wchar_t name[] = L"Ba\x0308";Und dann verwende TextOutW!
-
okay cool danke:)
allerdings habe ich dann gleich noch eine Frage:
Es funktioniert nämlich nur mit Werten von 0x00 bis 0xFF (also die Zeichen des ANSI Zeichensatzes). Bei 16 Bit Werten (also vom UNICODE Zeichensatz) funktioniert es nicht mehr.Gruß
PS: Was ist denn eigentlich der UNICODE Wert für das Euro Zeichen?
-
Du musst ein Unicode-Projekt erstellen, damit auch die Fenster Unicode könne... auch musst Du TextOutW verwenden!
-
ja klar. ich arbeite ja schon mit unicode^^ deswegen auch meine frage;-) er zeichnet bei mir allerdings nicht das gewünschte Zeichen sondern nur dieses schwarze "Kästchen" das erscheint wenn kein Zeichen vorhanden ist.
-
Dann hast Du die Zeichen nicht installiert oder verwendest einen Font, der diese Zeichen nicht kann.
-
ahh okay danke dann werd ich mal nach einer passenden Schrift suchen^^
lg