这是我的代码,想用ncurses::addstr输出一串中英混合的字符串
log::debug!("row str {}", row_str);
ncurses::addstr(&row_str);
变量row_str
中的中文可以被log::debug
正确打印出来, 但在使用ncurses::addstr
时输出了乱码。
我已经尝试了以下三种方式来修复,但没有哪个能行得通。
// method 1
gettextrs::setlocale(gettextrs::LocaleCategory::LcAll, "");
// method 2
use libc::setlocale;
unsafe {
setlocale(0, "".as_bytes().as_ptr() as *const i8);
}
//method 3
ncurses::setlocale(ncurses::constants::LcCategory::all, "")
谢谢
1
共 6 条评论, 1 页
评论区
写评论先用local命令看看你系统的设置。systemd的话一般用命令设置:localectl set-locale zh_CN.UTF-8。然后locale命令看到的是zh_CN.utf8。其实前面是什么都行,关键是字符集一定是UTF-8,就OK了。
写了个测试程序如下:
显示结果是:
这个官方的example(https://github.com/jeaye/ncurses-rs/blob/master/examples/ex_1.rs)基本一样了,还是乱码。
--
👇
chirsz-ever: Linux 的 locale 设置成 zh_CN.UTF-8 的话一般没问题啊,能截图看看乱码吗
先看看系统环境
Linux 的 locale 设置成 zh_CN.UTF-8 的话一般没问题啊,能截图看看乱码吗
是在linux环境下
--
👇
chirsz-ever: 请问这是在什么环境下?Windows,Linux 还是 Mac?
请问这是在什么环境下?Windows,Linux 还是 Mac?