您的位置:首页 > 娱乐 > 明星 > 莱芜招聘的网站_好的网站建设技术_免费拓客软件哪个好用_网站的宣传与推广

莱芜招聘的网站_好的网站建设技术_免费拓客软件哪个好用_网站的宣传与推广

2024/10/6 14:27:25 来源:https://blog.csdn.net/weixin_40929607/article/details/142281081  浏览:    关键词:莱芜招聘的网站_好的网站建设技术_免费拓客软件哪个好用_网站的宣传与推广
莱芜招聘的网站_好的网站建设技术_免费拓客软件哪个好用_网站的宣传与推广

解决QT Creator MSVC编译模式下的中文乱码

文章目录

  • 解决QT Creator MSVC编译模式下的中文乱码
    • 测试内容
    • 测试环境配置
    • 测试代码
    • 测试结果
    • 测试结论

在重装qt qt 5.15.2版本并配置MSVC 2019编译后,qt creator频频出现中文乱码,其包括不限于控制台输出乱码、界面乱码、报错乱码等。这篇博客以测试记录的形式给出解决过程。
使用最后的方法,应该可以解决qt 5.15.2版本的乱码情况,如果如此修改后依然不行,请重启一下电脑。

测试内容

检测qt creator的输出中文。(检测控制台和问题提示的输出。)

测试环境配置

qt 5.15.2 + MSVC 2019

image-20240809111138984

界面环境:

image-20240809111125151

文本编辑器:

image-20240809111206364

.pro文件配置:

msvc{QMAKE_CFLAGS += /utf-8QMAKE_CXXFLAGS += /utf-8# QMAKE_CXXFLAGS += /source-charset:utf-8 /execution-charset:utf-8
}

主函数代码设置

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

测试代码

void logMessages() {// 使用 std::cout 输出 UTF-8 编码的字符串std::cout << "cout测试内容" << std::endl;// 使用 QTextStream 强制控制台使用 UTF-8 编码QTextStream out(stdout);out.setCodec("UTF-8");out << QString::fromUtf8("out测试内容") << endl;// 修改 qDebug 的输出编码QString testString = QString::fromUtf8("qdebug测试内容");qDebug().noquote() << testString.toUtf8();qDebug()<<QString::fromUtf8("qdebug测试内容");QVariant var = QString("qv测试");QVariant var1 = QString::fromUtf8("qvutf8测试");QVariant var2 = QString::fromLocal8Bit("qvlocal8测试");qDebug() << var.toString();qDebug() << var1.toString();qDebug() << var2.toString();
}int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 设置 QTextCodec 为 UTF-8QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));logMessages();return a.exec();
}

测试结果

1、Release和Debug输出结果均正常

image-20240809111541058

image-20240809111603671

2、问题输出中文正常

image-20240809111648030

3、界面显示正常

image-20240809112606562

测试结论

  • 编辑器、kits、环境编码都需要配置
  • .pro文件配置msvc必不可少
  • main函数配置QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));必不可少

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com