概述
在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命令輸出爲: