Я пытаюсь добавить символы wchar_t Unicode к экрану ncurses в C.
У меня есть массив:
wchar_t characters[]={L'\uE030', L'\uE029'}; // containing 2 thai letters, for example
И позже я попытаюсь добавить wchar_t из массива в ncurses с помощью:
add_wch(characters[0]);
Чтобы предоставить немного больше информации, выполнение этого с помощью ASCII работает нормально, используя:
char characters[]={'A', 'B'};
// and later...
addch(characters[0]);
Чтобы настроить языковой стандарт, добавьте include...
#include <locale.h>
// in main()
setlocale(LC_CTYPE,"C-UTF-8");
В число ncurses входят:
#include <ncurses.h>
Компиляция с помощью:
(изменить: добавлен стандарт c99, для универсальной поддержки имени char.)
gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99
Я получаю следующее предупреждение компиляции (конечно, исполняемый файл не работает):
ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’
Я пробовал использовать addch
, который, как представляется, макросохраняется для работы с wchar_t, но когда я это делаю, символы Unicode не отображаются, вместо этого они отображаются как символы ASCII.
Любые мысли?
Я использую OS X Snow Leopard, 10.6.6
Изменить: удалить ошибку при назначении wchar_t []
для использования L'\u0E30'
вместо L"\u0E30"
и т.д.
Я также обновил параметры компилятора, чтобы использовать C99 (для добавления универсальной поддержки имени char). оба изменения не устраняют проблему.
По-прежнему нет ответов на это, кто-нибудь знает, как делать Unicode ncurses addchar
(add_wchar?)?! Помогите!