如何使 ncurses 在 C 中正确显示 UTF-8 字符?
- 2024-11-04 08:43:00
- admin 原创
- 180
问题描述:
我有一个使用 ncurses 用 C 编写的程序。它让用户输入并显示它。如果用户输入 utf8 字符,它无法正确显示。
我将用户输入的字符保存到一个文件中。然后我cat
直接在 Shell 中打开这个文件,它显示正确。
搜索了stackoverflow和google,尝试了几种方法,比如用ncursesw链接,显示不正确。
我ldd /usr/bin/screen
:libncurses.so.5 => /usr/lib64/libncurses.so.5
screen
可以正确显示用户输入的内容。
如何使 ncurses 正确显示 UTF-8 字符?
使用 ncurses 在 C 中显示 UTF-8 字符的一般方法是什么?
解决方案 1:
您需要在初始化 ncurses 之前调用setlocale(LC_CTYPE, "");
(配置基于 UTF-8 的区域设置)。您还需要确保您的 ncurses 实际上是使用宽字符支持(“ncursesw”)构建的,但在现代发行版中,这是默认/唯一构建。
解决方案 2:
#need these as well on top of installation and locate setting
#at least check locale
locale
locale-gen en_US.UTF-8
#vim ~/.bashrc # add 3 lines once ok and fix the profile
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export NCURSES_NO_UTF8_ACS=1
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD