我有一个使用ncurses用C编写的程序。它让用户输入并显示它。如果用户输入utf8字符,它将无法正确显示。
我将输入的字符用户保存到文件中。而且我cat直接在Shell中将此文件正确显示。
cat
我搜索了stackoverflow和google,并尝试了几种方法(例如与ncursesw链接)显示不正确。
我ldd /usr/bin/screen:libncurses.so.5 => /usr/lib64/libncurses.so.5
ldd /usr/bin/screen
libncurses.so.5 => /usr/lib64/libncurses.so.5
screen 可以正确显示用户输入的内容。
screen
如何使ncurses正确显示UTF-8字符?
使用ncurses在C中显示UTF-8字符的一般方法是什么?
setlocale(LC_CTYPE, "");在初始化ncurses之前,您需要先进行调用(已配置基于UTF-8的语言环境)。您还需要确保您的ncurses实际上是在广泛的char支持下构建的(“ ncursesw”),但是在现代发行版中,这是默认/唯一的构建。
setlocale(LC_CTYPE, "");