概述

在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" ) );
    两台机器使用的这两种各自有效。

备注

  1. /etc/profile文件中导出编码为:
    export LANG="zh_CN.GB18030"
    export LC_ALL="zh_CN.UTF-8"

  2. /etc/locale.conf文件中导出编码为:
    LANG=zh_CN.GBK

  3. locale命令输出为:
    CentOS7 下 QT 界面显示中文乱码_第1张图片