Qt中文乱码--使用Unicode万国码解决
需求
Qt界面开发过程中可能使用到多个语言的字符。需要解决乱码问题。
API介绍
Qt 提供类:QTextCodec Class,用来支持各种编码协议,支持:
- ISO 2022-JP
- ISO 8859-1 to 10
- KOI8-R
- KOI8-U
- Macintosh
- TSCII
- UTF-8
- UTF-16
- UTF-32
等等一些编码协议。
Qt的QTextCodec Class类提供了很多控制编码的方法和静态函数。
- 使用setCodecForLocale可以设置编码格式。
原因
使用MSVC编译器会使用本地编码,造成和Qt默认设置的编码冲突,编译过程中出现中文乱码。最简单的方式是:使用MinGW编译器。
具体方法
- 将下面两行插入到man.c中的main函数中,将使用Unicode ,万国码字符编码,可以解决中文乱码问题。
#include <QTextCodec>
int main(int argc, char *argv[]){QTextCodec *codec = QTextCodec::codecForName("UTF-8");QTextCodec::setCodecForLocale(codec);
}
补充
参考文献:
https://blog.csdn.net/sinat_36053757/article/details/70142078
https://blog.csdn.net/wu9797/article/details/85019490
- 仍然使用,但是是将字符串转换。
- 例子
使用codec->toUnicode()将字符串转换成uinicode万国码。
QTextCodec *codec = QTextCodec::codecForName(“GBK”);//修改这两行
w.setWindowTitle(codec->toUnicode(“学生事务管理系统”));
- 利用QString::fromLocal8Bit()静态函数;
w.setWindowTitle(QString::fromLocal8Bit("学生事务管理系统"));
- 利用QStringLiteral()函数处理字符串。
w.setWindowTitle(QStringLiteral("学生事务管理系统"));
4.指定MSVC编译器执行字符集,强制MSVC编译器采用UTF-8编码生成可执行文件。
#if _MSC_VER >= 1600 // MSVC2015 > 1899, MSVC_VER = 14.0
#pragma execution_character_set("utf-8")
#endif
- MSVC2010以后的编译器可以使用此方案,目前唯一支持的目标执行集是“utf-8”(引用:execution_character_set Microsoft[引用日期2018-12-16])。值得注意的是,这样可以使用tr()函数用于字符串翻译。
使用 #pragma execution_character_set(“utf-8”) 强制转换后,就不要再使用前面两种方法了,否则又乱码了,做无用功。
Qt中文乱码--使用Unicode万国码解决相关推荐
- 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
尊重作者,支持原创,如需转载,请附上原地址:https://blog.csdn.net/libaineu2004/article/details/19245205 一.Qt Creator环境设置 1 ...
- QT中文乱码解决方法2
转载自:http://blog.163.com/seven_7_one/blog/static/162606412201032955449489/ QT中文乱码的解 2010-04-29 17:54: ...
- Qt中文乱码解决思路
最近项目中遇到不少的Qt中文乱码的问题,主要原因是客户的需求比较多,Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代 ...
- 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)--ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换 参考文章: (1)解决Qt中文乱码以及汉字编码的问题(U ...
- QT中文乱码解决思路和方法汇总
QT中文乱码解决思路和方法 中文编码一律使用QString::fromLocal8Bit()接口,原因是为了支持QT4版本.QStringLiteral()方法也可以使用,它是支持QT5版本的: CP ...
- Qt中文乱码原因及解决方案
本文主要分析了基于windows系统msvc2013编译器的Qt中文乱码. 概念 字库表:是一个系统支持的文字,符号,数字的集合. 编码字符集(字符集):我们平时所说的字符集就是这个,计算机以二进制的 ...
- 用 Python 理清编码问题:Unicode万国码
Unicode--万国码 为解决语言各自为政的编码,人们提出了Unicode编码方案,这个方案简单粗暴:把世界上所有语言字符统一编码.Unicode的两种方案UCS-2和UCS-4,可使用空间分别达到 ...
- Tomcat中文乱码问题的原理和解决方法
为什么80%的码农都做不了架构师?>>> Tomcat中文乱码问题的原理和解决方法 自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决 ...
- bs4 乱码_Python BeautifulSoup中文乱码问题的2种解决方法
解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家 首先是代码 复制代码 代码如下: from bs4 im ...
最新文章
- 获取Java系统相关信息
- linux nohup 英文全称 no hang up(
- 信息化的“五观”与“N为”
- 《Arduino开发实战指南:LabVIEW卷》——3.2 LabVIEW的数据流编程方法
- 【教程】手把手企业FTP搭建实例
- 5 日期范围查询_MySQL(四)——复杂查询
- 重磅推荐 | 11个名企NLP项目,硅谷科学家帮你转型
- C++ const 关键字小结
- Winform控件拖动
- java 面试题三十三 子类父类方法执行顺序的问题
- 前端学习(3143):react-hello-react之总结生命周期
- beetl 页面标签_Beetl 2.9.0 发布,修改 HTML 标签的渲染机制
- spring源码分析2本最高清带书目PDF百度网盘分享
- php javascript 不执行,javascript – 不工作php按钮来执行操作
- 爬虫-csdn博客爬虫-打造具有搜索功能的小工具
- 每天一个linux命令(55)--at命令
- python工具包: argparse
- em在聊天中是什么意思_被神化的EM菌,该怎样正确使用?
- linux 安装tomcat
- 百度文库复制文字代码
热门文章
- docker之自定义镜像上传阿里云
- MQTT Part 5 主题和最佳实践
- 免费分享一个springboot+vue的办公系统
- 人生哲理小故事《猎狗与兔子》非常经典的故事
- MPC系列-混淆电路
- 三菱FX3U与台达DTA温控器modbus通讯案例 实现三菱FX3U与台达DTA温控器进行温度设定
- Mysql的课后习题 40T
- [ZYNQ随笔] uboot移植中bitstream比特流加载问题:zynq_validate_bitstream: Bitstream is not validated yet
- 无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】
- php微博登录授权代码,PHP调用微博接口实现微博登录的方法示例