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

eve*_*box 7 c linux screen ncurses

我有一个使用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字符的一般方法是什么?

R..*_*R.. 14

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

  • @KdawgUD在Ubuntu上,你可以用sudo apt-get install libncursesw5-dev安装库.在构建时使用ncursesw库,并包含ncursesw/curses.h库 (2认同)