gpt4 book ai didi

c - 为什么 ncurses 不会输出 UTF8 字符串的所有外来字符?

转载 作者:行者123 更新时间:2023-11-30 14:48:03 25 4
gpt4 key购买 nike

尝试在 ncurses 下获得对 UTF8 的完全支持。我构建了具有广泛字符支持的 ncurses 5.9。如果我有一个 utf8 字符串,如下所示: D0 9D D0 BE D0 B2 D1 8B D0 B9将输出Новый在普通控制台中使用 printf 。如果我启动 ncurses 并使用 waddstr我只得到一些字符,如: ?~]ов?~Kй 。为什么它不起作用?嵌入的转义序列 ~] 和 ~K 有何意义?

我包含了 header 的宽版本并与构建的宽库链接。

这是使用 open watcom(静态链接)构建的,事实证明 OW 总是使用“C”语言环境,因此重建了库,删除 HAVE_LOCALE_H (在本例中,这允许 ncurses 从环境变量中提取信息 LANG='en_US.UTF-8' )。现在就摆脱了 ~]~K但仍然得到 ? ов? й (现在 \n 对于新行不起作用)。

所以这已经变成了另外两个问题:

1 ) ncurses 对 c 库有何要求? (显然 ncurses 可以很好地处理一些多字节字符,但是这两个字符仍然存在问题)

2) 为什么newline角色停止工作?

TIA!!

最佳答案

也许您忘记设置区域设置:

setlocale(LC_ALL, "");

Initialization 中所述手册页的部分。

关于c - 为什么 ncurses 不会输出 UTF8 字符串的所有外来字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767405/

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