相关疑难解决方法(0)

将Unicode/UTF8字符添加到C中的ncurses显示中

我正在尝试将wchar_t Unicode字符添加到C中的ncurses显示中.

我有一个数组:

wchar_t characters[]={L'\uE030', L'\uE029'}; // containing 2 thai letters, for example 
Run Code Online (Sandbox Code Playgroud)

然后我尝试将数组中的wchar_t添加到ncurses显示中:

add_wch(characters[0]);
Run Code Online (Sandbox Code Playgroud)

要提供更多信息,使用ASCII执行此操作正常,使用:

char characters[]={'A', 'B'};

// and later...

addch(characters[0]);
Run Code Online (Sandbox Code Playgroud)

要设置区域设置,我添加包含...

#include <locale.h>

// in main()
setlocale(LC_CTYPE,"C-UTF-8");
Run Code Online (Sandbox Code Playgroud)

ncurses包括:

#include <ncurses.h> 
Run Code Online (Sandbox Code Playgroud)

编译:

(编辑:添加了c99标准,用于支持通用字符名称.)

gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99
Run Code Online (Sandbox Code Playgroud)

我得到以下编译警告(当然可执行文件将失败):

ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用addch看起来像宏来使用wchar_t,但是当我这样做时,Unicode字符不显示,而是显示为ASCII字符而不是.

有什么想法吗?

我正在使用OS X Snow Leopard,10.6.6

编辑:删除wchar_t []分配时使用的错误L'\u0E30'而不是L"\u0E30"等.我还更新了编译器设置以使用C99(添加通用字符名称支持).这两个变化都无法解决问题.

仍然没有答案,有谁知道如何做Unicode ncurses addchar(add_wchar?)?! 救命!

c ncurses utf-8

11
推荐指数
1
解决办法
2万
查看次数

如何让ncurses在C中正确显示UTF-8字符?

我有一个使用ncurses用C编写的程序.它让用户输入并显示它.如果用户输入utf8字符,则无法正确显示.

我将chars用户保存到文件中.而我cat这个文件直接在Shell中,它显示正确.

我搜索了stackoverflow和谷歌,并尝试了几种方法,如与ncursesw链接,显示不正确.

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

screen 可以正确显示用户输入的内容.

如何让ncurses正确显示UTF-8字符?

使用ncurses在C中显示UTF-8字符的一般方法是什么?

c linux screen ncurses

7
推荐指数
1
解决办法
4958
查看次数

标签 统计

c ×2

ncurses ×2

linux ×1

screen ×1

utf-8 ×1