Wie macht ncurses UTF-8-Zeichen korrekt in C anzuzeigen?

8

Ich habe ein Programm geschrieben in C mit ncurses. Es lässt Benutzereingaben zu und zeigt sie an. Es wird nicht korrekt angezeigt, wenn Benutzer utf8 Zeichen eingeben.

Ich habe den Chars-Benutzer in einer Datei gespeichert. Und ich cat diese Datei direkt in Shell, wird es korrekt angezeigt.

Ich suchte stackoverflow und google und versuchte verschiedene Methoden wie link mit ncursesw, falsch anzuzeigen.

Und ich ldd /usr/bin/screen : libncurses.so.5 => /usr/lib64/libncurses.so.5

screen kann die Benutzereingabe korrekt anzeigen.

Wie kann man in ncurses UTF-8-Zeichen richtig anzeigen?

Was ist die allgemeine Art, UTF-8 Zeichen in C mit ncurses anzuzeigen?

    
everbox 29.03.2012, 09:23
quelle

1 Antwort

14

Sie müssen setlocale(LC_CTYPE, ""); (mit einem konfigurierten UTF-8-Gebietsschema) aufgerufen haben, bevor Sie ncurses initialisieren. Sie müssen auch sicherstellen, dass Ihr Ncurses tatsächlich mit Whole Char-Unterstützung ("ncursesw") erstellt wird, aber auf modernen Distributionen ist dies der Standard / nur Build.

    
R.. 29.03.2012, 14:10
quelle

Tags und Links