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

我有一个使用ncurses编写的程序。 它让用户input并显示它。 如果用户inpututf8字符,则不能正确显示。

我保存了字符用户input到一个文件。 我直接在Shell中cat这个文件,它显示正确。

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

而我ldd /usr/bin/screenlibncurses.so.5 => /usr/lib64/libncurses.so.5

screen可以正确显示用户input的内容。

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

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

Solutions Collecting From Web of "如何使ncurses在C中正确显示UTF-8字符?"

你需要调用setlocale(LC_CTYPE, ""); (配置了基于UTF-8的语言环境),然后再初始化ncurses。 你还需要确保你的ncurses实际上是用宽字符支持(“ncursesw”)构建的,但是在现代发行版中,这是默认/唯一的构建。