I Wchar_t Unicode-Zeichen zu einem ncurses in C. AnzeigeUnicode/UTF8 Zeichen auf einen ncurses Hinzufügen von Anzeigen in C
Ich habe ein Array hinzuzufügen bin versucht:
wchar_t characters[]={L'\uE030', L'\uE029'}; // containing 2 thai letters, for example
Und ich später versuchen einen wchar_t aus dem Array hinzufügen, um die ncurses mit angezeigt werden: mit ASCII funktioniert ok
add_wch(characters[0]);
um ein bisschen mehr Informationen, dies zu tun, mit:
char characters[]={'A', 'B'};
// and later...
addch(characters[0]);
die locale Zur Einrichtung, füge ich die folgenden ...
#include <locale.h>
// in main()
setlocale(LC_CTYPE,"C-UTF-8");
Die ncurses enthalten ist:
#include <ncurses.h>
Kompilieren mit:
(edit: hinzugefügt C99-Standard, für universellen Char Namen Unterstützung.)
gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99
erhalte ich die folgende Zusammenstellung Warnung (natürlich die ausführbare Datei wird fehlschlagen):
ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’
Ich habe gerade versucht addch
mit der macro'ed zu sein scheint mit wchar_t zu arbeiten, aber wenn ich das tun die Unicode-Zeichen nicht angezeigt, stattdessen werden sie stattdessen als ASCII-Zeichen angezeigt.
Irgendwelche Gedanken?
I OS X Snow Leopard verwenden, 10.6.6
Edit: entfernt Fehler auf wchar_t []
Zuordnung L'\u0E30'
zu verwenden, anstatt L"\u0E30"
usw. ich auch die Compiler-Einstellungen aktualisiert habe C99 zu verwenden (hinzuzufügen universal Char Namen Unterstützung). Beide Änderungen beheben das Problem nicht.
Noch keine Antworten auf diese, weiß jemand, wie Unicode Ncurses addchar
(add_wchar?) Zu tun?! Hilfe!
Beachten Sie auch, dass Sie niemals eine Zeichenfolge außer '' '' an 'setlocale' übergeben sollten. Das Übergeben von "" "führt dazu, dass das konfigurierte/System-Gebietsschema abgerufen wird, das auf einem modernen System UTF-8 basieren sollte. Namen wie "C-UTF-8" sind nicht tragbar. –