Я закончил тем, что делал это на Лиспе вместо Си :)

аюсь добавить символы Unicode wchar_t для отображения 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 <locale.h>

// in main()
setlocale(LC_CTYPE,"C-UTF-8");

Курсы включают в себя:

#include <ncurses.h> 

Компилирование с:

(редактировать: добавлен стандарт c99, для поддержки универсального имени символа.)

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 (чтобы добавить поддержку универсального имени символа). оба изменения не решают проблему.

До сих пор нет ответов на этот вопрос, кто-нибудь знает, как сделать Uncode ncursesaddchar (add_wchar?)?! Помогите!

Ответы на вопрос(4)

Ваш ответ на вопрос