gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:43:02 25 4
gpt4 key购买 nike

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

我有一个数组:

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 标准,用于通用字符名称支持。)

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(以添加通用字符名称支持)。这两项更改都不能解决问题。

对此仍然没有答案,有人知道如何做 Unicode ncurses addchar (add_wchar?) 吗?!帮助!

最佳答案

宽字符支持由 ncursesw 处理。根据您的发行版,ncurses 可能指向也可能不指向那里(看起来不在您的发行版中)。

尝试使用 -lncursesw 而不是 -lncurses

此外,对于语言环境,请尝试调用 setlocale(LC_ALL, "")

关于c - 将 Unicode/UTF8 字符添加到 C 中的 ncurses 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com