试图在ncurses下获得对UTF8的完全支持。我构建了支持宽字符的ncurses 5.9。如果我有一个打印字符串:D0 9D D0 BE D0 B2 D1 8B D0 B9
将在普通控制台中使用utf8输出Новый
。如果我启动ncurses并使用waddstr
,我只能得到?~]ов?~Kй
中的一些字符。为什么它不工作,嵌入的转义序列~]和~K有什么意义?
我包括广泛版本的标题和链接与构建的广泛的库。
这是使用open watcom构建的(静态链接),事实证明OW总是使用"C“语言环境,所以重新构建了删除HAVE_LOCALE_H
的库(这允许ncurses从环境变量中拉入信息,在本例中为LANG='en_US.UTF-8'
)。所以现在去掉了~]
和~K
,但仍然得到了? ов? й
(现在新行的\n
不起作用了)。
因此,这已经演变成两个额外的问题:
1) ncurses对c库有什么要求?(显然,ncurses可以很好地处理一些多字节字符,但这两个字符仍然存在问题)
2)为什么newline
字符停止工作?
蒂娅!!
发布于 2018-06-09 03:49:00
也许您忘了设置区域设置:
setlocale(LC_ALL, "");
如手册页的部分所述。
https://stackoverflow.com/questions/50767405
复制相似问题