QT学习笔记(四):Qt5+MSVC编译 中文字符显示乱码问题解决
QT学习笔记(四):Qt5+MSVC编译 中文字符显示乱码问题解决
- 问题:
- 1、解决方法一:
- 2、解决方法二:
- 3、解决方法三:
- 4、解决方法四:
- 结果显示:
Qt5+MSVC编译 中文字符显示乱码。
现在为解决方法做个汇总:
问题:
main.cpp 代码如下:
#include<QApplication>
#include<QWidget>
#include<QLabel>int main (int argc , char* argv[])
{QApplication a(argc ,argv );QWidget widget;widget.resize(350,250);widget.setWindowTitle("面朝大海 by 海子");QLabel label(&widget);label.move(120,120);label.setText(QObject::tr("面朝大海,春暖花开"));widget.show();return a.exec();
}
显示:
1、解决方法一:
保证源程序源码文件是UTF-8,用以下预处理命令(及设置执行字符集,指示char的执行字符集是UTF-8编码)
源文件或头文件前面加上下面几行代码:
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
PS: 要注意使用此预处理命令解决中文乱码问题,要求源码必须保存成带BOM的UTF-8格式:
及 QT Creator 中文本编码设置为 Add UTF-8 BOM on Save
2、解决方法二:
main.cpp 加上==#include <qtextcodec.h>==,并修改代码:
#include<QApplication>
#include<QWidget>
#include<QLabel>
#include <qtextcodec.h>int main (int argc , char* argv[])
{QApplication a(argc ,argv );QWidget widget;widget.resize(350,250);// 增加:QTextCodec *codec = QTextCodec::codecForName("GBK"); // 修改:widget.setWindowTitle(codec->toUnicode("面朝大海 by 海子")); QLabel label(&widget);label.move(120,120);// 修改:label.setText(codec->toUnicode("面朝大海,春暖花开")); widget.show();return a.exec();
}
3、解决方法三:
通过 定义的静态函数QString::fromLocal8Bit,先转换成Unicode类型:
#include<QApplication>
#include<QWidget>
#include<QLabel>int main (int argc , char* argv[])
{QApplication a(argc ,argv );QWidget widget;widget.resize(350,250); // 修改:widget.setWindowTitle(QString::fromLocal8Bit("面朝大海 by 海子")); QLabel label(&widget);label.move(120,120);// 修改:label.setText(QString::fromLocal8Bit("面朝大海,春暖花开")); widget.show();return a.exec();
}
4、解决方法四:
通过Qt5中处理支持中文常量的宏: QStringLiteral(它只能处理中文常量 ,const char* 不行):
#include<QApplication>
#include<QWidget>
#include<QLabel>int main (int argc , char* argv[])
{QApplication a(argc ,argv );QWidget widget;widget.resize(350,250); // 修改:widget.setWindowTitle(QStringLiteral("面朝大海 by 海子")); QLabel label(&widget);label.move(120,120);// 修改:label.setText(QStringLiteral("面朝大海,春暖花开")); widget.show();return a.exec();
}
结果显示:
QT学习笔记(四):Qt5+MSVC编译 中文字符显示乱码问题解决相关推荐
- RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...
- linux红帽网页中文乱码解决,【linux学习笔记】安装redhat时中文显示乱码(小方框)解决方法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ------------------------------------- 防抽------------------------------------- ...
- QT学习笔记(二):QT MinGW 和 MSVC 编译方式
QT学习笔记(二):QT MinGW 和 MSVC 编译方式 Qt 中有两种方式编译:一种是MinGW ,另一种MSVC,是使用两种不同的编译器. 1.MSVC是指微软的VC编译器: 2.MingGW ...
- QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)
QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...
- QT学习笔记(六):Qt5主窗口框架示例
QT学习笔记(五):Qt5主窗口框架代码示例 一.添加编辑菜单:并在下拉菜单和工具栏中添加"打开文件"动作菜单 #include <QToolButton> #incl ...
- QT学习笔记(一):VS2013 +QT 5.8 运行、编译问题解决
QT学习笔记(一):VS2013 +QT 5.8 运行.编译问题解决 jom: E:\C++\4.QT\HelloWord\Makefile.Debug [debug\moc_predefs.h] E ...
- QT学习笔记(十四):QLayout的属性介绍
QT学习笔记(十四):QLayout的属性介绍 主要包括QBoxLayout.和QGridLayout以及QFormLayout等的参数类似. 我主要说明一下QGridLayout在QtDesigne ...
- QT学习笔记(五):Qt5的8种标准对话框示例
QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...
- Qt学习笔记之MySQL数据库
一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...
最新文章
- HarmonyOS ToastDialog 的使用
- 数据结构与算法(2-1)线性表之顺序存储(顺序表)
- Anaconda:成功解决利用conda下载pytorch和torchvision时速度超慢的问题
- Java实现斐波那契数列Fibonacci
- VLC详细的使用说明以及配置说明综合示范实例精通VLC开发
- google摄像头查找办法
- (21)xilinx PCIE 开发方法(学无止境)
- windows dns配置文件在哪_搭建基于Windows的域服务与文件服务(一)——搭建Windows域服务...
- hnu 暑期实训之公交系统
- 实现简单的Console
- Autosar OSEK 网络管理学习笔记
- 计算机音频视频格式名,MP3/MP4播放器固件知识常见问题解决
- Imagenet数据集1000类别中英文
- 宝塔 云服务器 外网无法访问 解决办法
- windows查看tomcat版本信息
- React.createElement()的使用
- 数字图像处理01:imadjust函数的Pyhton实现
- 实验吧-密码学解题思路及答案(一)
- JavaEE 企业级分布式高级架构师(十五)FastDFS分布式文件服务器(1)
- [精通ROS机器人编程]在RViz中可视化机器人3D模型,GUI界面没有正常显示机械结构
热门文章
- MYSQL错误: ERROR 1205: Lock wait timeout exceeded(处理MYSQL锁等待)解决办法
- 啊啊忍不住了,更!新!!!
- 一篇文章搞懂架构师的核心技能
- Reactor三种线程模型与Netty线程模型
- 中文词语概念上下位图谱项目
- 【LeetCode】3月29日打卡-Day14-BFS
- 文献阅读6-Entity-Relation Extraction as Multi-turn Question Answering(实体关系联合抽取,层次标签依赖关系,multi-turn QA)
- Excel生成Sql语句 格式如:=字符串1A2字符串2C2字符串3
- redis和memcached相比的独特之处
- zabbix编译安装