Qt 中文显示乱码问题解决方案

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888

1、Qt 5.9.6 中文显示乱码

环境:vs2015搭建的Qt编译环境,Qt版本是5.9.6。
项目工程字符集使用的 Unicode 字符集。

1.1、解决方案

工程属性参数配置如下:
Qt 中文显示乱码问题解决方案_第1张图片

演示代码:

#include "QtGuiApplication.h"
#include 

//解决中文乱码的缺陷
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QtGuiApplication w;
	w.show();
	return a.exec();
}

添加前:
在这里插入图片描述

添加后:
在这里插入图片描述

1.2、注意事项

1、只有在某个UI对应的 xxx.h添加了该语句后,该UI中的中文才会正常显示,未添加的依旧是乱码;所以建议将该语句放到一个公共的工具文件(xxx.h) 中,因为工具文件中的工具函数很多类都会使用,这样的话,就不用每个UI的xxx.h文件都写一次了。

2、Qt Create 中解决中文乱码

环境:Qt Create 编译器中使用的。

方案一:

//Qt4.x 中使用

//头文件:
include<QTextCodec>

//在main函数中的 QApplication app(argc,argv);之后添加如下代码    

QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);


方案二:

//Qt5.x 中使用
include<QTextCodec>

//在main函数中的 QApplication app(argc,argv);之后添加如下代码   
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));

方案三:

在Qt Create编辑器菜单栏中进入 工具 -> 选项,然后 选择 文本编辑器 -> 行为 -> 文件编码 -> 选择utf8, 详见如下图示。

因为这里是在Qt Create编辑器中进行的开发配置工作,因为使用了任何版本的。

Qt 中文显示乱码问题解决方案_第2张图片

3、笔记跟新记录

时间 内容
2020-09-06 创建笔记
2020-10-05 添加第2小节

你可能感兴趣的:(C/C++,Qt,qt,乱码)