linux 中ncurses 中文乱码

使用ncurses出现中文乱码,在网上搜索了一大堆方法还是没有解决。

有几个关键点:

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

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

#include <ncursesw/curses.h>
#include <locale.h>

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

发现中文可以正常打印了


捐赠:

BTC: `1NTom3PgUct3WNmnBYNq5KGDQvY3MXs8dJ`

ETH:`0x8509f0F37497e094924F5c2e776e0dA522c57e43`


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值