Sto tentando di aggiungere wchar_t caratteri Unicode a un ncurses visualizzare in C.L'aggiunta di caratteri Unicode/UTF8 a un ncurses visualizzare in C
Ho un array:
wchar_t characters[]={L'\uE030', L'\uE029'}; // containing 2 thai letters, for example
E più tardi provo per aggiungere un wchar_t dalla matrice alle ncurses visualizzare con:
add_wch(characters[0]);
per fornire un po 'più di informazioni, facendo questo con ASCII funziona bene, utilizzando:
char characters[]={'A', 'B'};
// and later...
addch(characters[0]);
Per configurare le impostazioni internazionali, aggiungo l'inclusione ...
#include <locale.h>
// in main()
setlocale(LC_CTYPE,"C-UTF-8");
I ncurses comprendono è:
#include <ncurses.h>
compilazione con:
(edit: aggiunto di serie C99, per il supporto universale del nome char)
gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99
ottengo il seguente avvertimento compilation (ovviamente l'eseguibile fallirà):
ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’
Ho provato solo usando addch
che sembra essere macro'ed a lavorare con wchar_t ma quando faccio che i caratteri Unicode non mostrare, invece mostrano come caratteri ASCII.
Qualche idea?
Sto usando OS X Snow Leopard, 10.6.6
Edit: Errore rimosso su wchar_t []
assegnazione da utilizzare al posto di L'\u0E30'
L"\u0E30"
ecc Ho anche aggiornato le impostazioni del compilatore di utilizzare C99 (per aggiungere universale supporto nome char). entrambe le modifiche non risolvono il problema.
Ancora nessuna risposta a questo, qualcuno sa come fare Unicode ncurses addchar
(add_wchar?)?! Aiuto!
Si noti inoltre che non si deve mai passare alcuna stringa ma "" "' a 'setlocale'. Passando '" "' si ottiene la localizzazione configurata/di sistema, che dovrebbe essere UTF-8 basata su qualsiasi sistema moderno. Nomi come "C-UTF-8" non sono portatili. –