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();
}

结果显示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

github单独下载某个文件或文件夹

首先下载tortoiseSVN&#xff0c;安装好之后打开github项目的地址&#xff0c;例如https://github.com/rbgirshick/fast-rcnn 单独下载某个文件夹&#xff1a; 如果只需要下载tools这个文件夹&#xff0c; 点进这个文件夹&#xff0c;复制该页面的网址得到https://github.com/…

技术架构大迁徙时代来临,10个关键点读懂数字化转型

来源&#xff1a;THINKTANK新智囊2月&#xff0c;在旧金山举办的IBM Think 2019大会上&#xff0c;IBM CEO、总裁及董事长Ginni Rometty提出当前正在进入数字化重塑2.0阶段&#xff08;Digital Reinvention, Chapter II&#xff09;&#xff1a;数字化重塑的第二篇章&#xff0…

QT学习笔记(五):Qt5的8种标准对话框示例

QT学习笔记&#xff08;五&#xff09;&#xff1a;Qt5的8种标准对话框示例前言实例展示1.颜色对话框2.文件对话框3.字体对话框4.输入对话框5.消息对框6.进度对话框7.错误信息对话框8.向导对话框.前言 QT 提供了常用的对话框类型&#xff0c;他们全部继承自QDialog类&#xff…

张亚勤、刘慈欣、周鸿祎、王飞跃新书推荐,《崛起的超级智能:互联网大脑如何影响科技未来》...

《崛起的超级智能&#xff1a;互联网大脑如何影响科技未来》2019年7月由中信出版社出版&#xff0c;前沿科技趋势研究专家&#xff0c;计算机博士刘锋著。张亚勤、刘慈欣、周鸿祎、王飞跃、约翰翰兹推荐&#xff01;吕乃基、石勇、吕本富做序。《崛起的超级智能&#xff1a;互联…

ARM与RISC-V之争,后起之秀的优势在哪儿?

来源&#xff1a;朗锐智科从2010年夏天开始&#xff0c;伯克利研究团队大约花了四年的时间&#xff0c;设计和开发了一套完整的新的指令集。这个新的指令集叫做RISC-V&#xff0c;指令集从2014年正式发布之初就受到多方质疑&#xff0c;到2017年印度政府表示将大力资助基于RISC…

道阻且长,Libra 项目负责人长文回应一切质疑

来源&#xff1a;星球日报当地时间 7 月 3 日&#xff0c;Facebook Libra 项目负责人 David Marcus 于个人 Facebook 发布长文《Libra, 2 weeks in》&#xff0c;就过去两周 Libra 所遇到的一些质疑及误解进行解释。以下为全文内容&#xff1a;自 Libra 正式公开已经两周了&…

QT学习笔记(七):定时器事件的3种常用使用方式

QT学习笔记&#xff08;七&#xff09;&#xff1a;定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法&#xff1a;一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数&#xff0c;一种就是使用QTimer类。 其中QTimer 类来实现定时器使用的更多&…

LightOJ - 1140 How Many Zeroes?

Description Jimmy writes down the decimal representations of all natural numbers between and including m and n, (m ≤ n). How many zeroes will he write down? Input Input starts with an integer T (≤ 11000), denoting the number of test cases.Each case cont…

​机器学习算法优缺点对比及选择(汇总篇)

转自&#xff1a;机器学习与统计学本文的目的&#xff0c;是务实、简洁地盘点一番当前机器学习算法。文中内容结合了个人在查阅资料过程中收集到的前人总结&#xff0c;同时添加了部分自身总结&#xff0c;在这里&#xff0c;依据实际使用中的经验&#xff0c;将对此模型优缺点…

QT学习笔记(八):顺序容器和关联容器

QT学习笔记&#xff08;八&#xff09;&#xff1a;顺序容器和关联容器一、前言二、容器介绍2.1 顺序容器2.2 关联容器二、顺序容器示例三、关联容器一、前言 在Qt库中为我们提供了一系列的基于模板的容器类(container classes)。这些类可以被用来存储特定类型的项(items)。例…

页面的缓存与不缓存设置

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息&#xff0c;包括浏览器 端&#xff0c;中间缓存服务器端(如&#xff1a;squid等)&#xff0c;Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情…

QT学习笔记(九):遍历容器-迭代器(iterators)

QT学习笔记&#xff08;九&#xff09;&#xff1a;遍历容器-迭代器&#xff08;iterators&#xff09;遍历容器 &#xff1a;1、Jave风格:2、STL风格:3、foreach 关键字:遍历容器 &#xff1a; 遍历一个容器可以使用迭代器&#xff08;iterators&#xff09;完成&#xff0c;…

QT学习笔记(十):通用算法示例

QT学习笔记&#xff08;十&#xff09;&#xff1a;通用算法示例 std是C标准库统一使用的命名空间(namespace)的名称&#xff0c;C标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"&#xff08;标准&#xff09;的缩写。 #include <QCoreAppl…

了解因果论:从珀尔的《为什么》开始

图I&#xff1a;AI从达特茅斯会议&#xff08;1956年&#xff09;得名至今已有六十年&#xff0c;期间几起几落&#xff0c;群星璀璨&#xff0c;像一个大舞台&#xff0c;你方唱罢我登场&#xff0c;留下了一些永载史册的理论和成就&#xff0c;但涉及因果的甚少作者&#xff…

外观模式(三层解耦)

说到外观模式&#xff0c;很容易想到的是设计一件漂亮的衣服然后穿上自己的身上&#xff0c;让自己看起来更加的漂亮&#xff0c;但是这个可能并不是这样子的&#xff0c;从更深层次的来说&#xff0c;外观更应该是所见即所得的&#xff0c;对于观众来说&#xff0c;看起来可能…

QT学习笔记(十一):QString类

QT学习笔记&#xff08;十一&#xff09;&#xff1a;QString类1、概述2、编辑操作3、查询操作3、转换操作1、概述 1.1 QString 类是 Qt 中用于表示字符串的类&#xff0c;实现在 QtCore 共享库中。QString 类在实现上有以下特征: 1&#xff09;字符串采用 Unicode 内部编码&…

人工智能六十年技术简史

作者 | 李理出品 | AI科技大本营&#xff08;rgznai100&#xff09;人类的进化发展史就是一部人类制造和使用工具的历史&#xff0c;不同的工具代表了人类的进化水平。从石器时代、铁器时代、蒸汽时代、电气时代再到现在的信息时代&#xff0c;我们使用更加先进便捷的工具来改变…

QT学习笔记(十二):透明窗体设置

QT学习笔记&#xff08;十二&#xff09;&#xff1a;透明窗体设置 创建 My_Widget 类 基类为QWidget &#xff0c; My_Widget.cpp 源文件中添加代码 #include "widget.h" #include "ui_widget.h"#include <QGraphicsDropShadowEffect>// 构造函数…

【新书】崛起的超级智能:互联网大脑如何影响科技未来

来源&#xff1a;刘锋的未来课堂2019年7月&#xff0c;《崛起的超级智能&#xff1a;互联网大脑如何影响科技未来》由中信出版社正式出版。作者刘锋。吕乃基、石勇、吕本富做序。张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹等专家为这本书撰写了推荐语。《崛起的超级智能》主要…