文件乱码

遇到这种情况,需要调整文件保存方案,将文件改为UTF-8带签名,具体操作如下:

  1. 首先打开“工具”选项卡,再点击“自定义
    步骤1

  2. 之后单击“命令”选项卡,再单击“添加命令

    步骤2

  3. 下拉“类别”列表框,找到“文件”并选中
    步骤3

  4. 在右侧列表下滑找到“高级保存选项”并点击,然后再点击确定即可

    步骤4

  5. 此时会发现左上角出现了“高级保存选项”,但是是灰色,这时我们只需要点击一次需要更改保存格式的代码区域即可。
    步骤5

  6. 点击代码的任意区域后,会发现选项已经变亮,就可以开始进行设置,设置完成后,文件名称后会有星号,此时别忘记对文件进行Ctrl+S保存。

    步骤6


QT命令行和界面输出乱码

造成这种情况解决办法不唯一,但是可以一个一个试,总是可以试出来的,以下给出一些解决思路。

  1. 添加以下预编译头(注意添加的位置,最好是在头文件内

    另外,该预编译头只支持VS环境,非VS环境无效。下面两个代码块可以任意选一个,一个不行试另一个。

    1
    2
    3
    #ifdef Q_OS_WIN
    #pragma execution_character_set("utf-8")
    #endif
    1
    2
    3
    #if _MSC_VER >= 1600
    #pragma execution_character_set("utf-8")
    #endif
  2. 使用QStringLiteral()函数

    主要是对中文使用此函数,基本上能够解决乱码问题,缺点就是麻烦。

    例:

    QLabel* label = new QLabel(QStringLiteral("示例标签"));

  1. 使用QTextCodec

    不是特别推荐

    例:

    setIniCodec(QTextCodec::codecForName("GB2312"));


配置文件乱码

直接用QTextCodec设置为GB2312,也可以是设置为UTF-8。

1
2
3
4
5
//.h
QSettings* configIni;
//.CPP
configIni = new QSettings(inifilePath,QSettings::IniFormat);
configIni->setIniCodec(QTextCodec::codecForName("GB2312"));

造成乱码的原因有很多,需要根据自身情况去分析,编程时需要养成良好的编码习惯。