QT-中文乱码

本文最后更新于:1 年前

IDE的文件编码

  • QT

    • 默认UTF-8
    • 字符集转换函数(将多字节字符集转换成UTF-8) QStringLiteral
  • VS

    • 默认GBK

    • 可在 高级保存 -> 编码 中改变格式,或者使用插件ForceUTF8

    • 可使用宏指定 #pragma execution_character_set(“UTF-8”)

    • 命令行输入/utf-8 ,要求使用utf-8编译

外部数据的编码转换

  • 设置本地默认处理编码方式(一般不用改变,只用后边两个转换函数)

    • 包含头文件 #include

    • 设置本地编码方式为UTF-8

      QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

  • QString str2 = QString::fromLocal8Bit(str1.toUtf8());

  • QString::toLocal8Bit()

​ windows API 中使用的是宽字符型wchar,需要先转换 str2.toStdWString().c_str()