概述
在CentOS7下开发Qt4 界面程序,结果中文显示为乱码。
locale命令查看了一下当前编码方式为:LANG=zh_CN.GBK
修改了一下/etc/locale.conf 没效果。
使用QtCreator--编辑--选择编码,修改了一下文件编码,没效果。
解决方法
main.cpp中使用:
- QTextCodec::setCodecForTr( QTextCodec::codecForLocale() );
- QTextCodec::setCodecForLocale( QTextCodec::codecForLocale() );
- QTextCodec::setCodecForCStrings( QTextCodec::codecForLocale() );
或:
- QTextCodec::setCodecForTr( QTextCodec::codecForName( "GBK" ) );
- QTextCodec::setCodecForLocale( QTextCodec::codecForName( "GBK" ) );
- QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "GBK" ) );
两台机器使用的这两种各自有效。
备注
-
/etc/profile文件中导出编码为:
export LANG="zh_CN.GB18030"
export LC_ALL="zh_CN.UTF-8" -
/etc/locale.conf文件中导出编码为:
LANG=zh_CN.GBK - locale命令输出为: