我们来自五湖四海,不为别的,只因有共同的爱好,为中国互联网发展出一分力!

linux中使用ncurses出现中文乱码解决方法

2014年07月22日07:49 阅读: 4461 次

标签: linux中使用ncurses出现中文乱

Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。在linux中使用ncurses的时候出现了一堆的中文乱码,找了很多方法都无法解决这类问题,下面来看看原因分析与解决方案。

有几个关键点:

1.gcc编译时用,gcc -lncursesw --verbose查看是否支持-lncursesw连接;

2.代码文件里面,设置locale

#include

#include

int main(int argc, char const *argv[])

{

setlocale(LC_ALL, "");

initscr();

noecho();

refresh();

printw("我来测试中文的/n");

getchar();

return 0;

}

3.命令行执行apt-cache search libncursesw5,查看是否安装ncurses库

发现我的linux不支持;在/usr/include/下发现有ncurses.h

但是,没有别人说的ncursesw目录;

后来发现,我装了libncurses5,也装了libncursesw5,导致-lncursesw选项不能用,我就把libncurses5卸载了,然后再重新装libncursesw5;

具体命令是

1. apt-cache search libncurses5

2. apt-get purge libncurses5

3. sudo apt-get purge libncurses5-dbg

4. sudo apt-get purge libncurses5-dev

5. sudo apt-get autoremove

6. sudo apt-get clean

7. dpkg -l |grep ^rc|awk '{print $2}' |xargs dpkg -P

接着再安装libncursesw5,命令如下

1. sudo apt-get install libncursesw5

2. sudo apt-get install libncursesw5-dbg

3. sudo apt-get install libncursesw5-dev

然后

gcc -c test.o test.c

gcc -o test test.o -lncursesw

接着运行 ./test

发现中文可以正常打印了

如果用户们使用ncurses也出现中文乱码,而都无法解决,那么不妨按照教程中的方法去试试。

分享到: 更多
©2020 安全焦点 版权所有.
人才招聘联系我们