需求

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

  1. 仍然使用,但是是将字符串转换。
  • 例子
    使用codec->toUnicode()将字符串转换成uinicode万国码。
QTextCodec *codec = QTextCodec::codecForName(“GBK”);//修改这两行
w.setWindowTitle(codec->toUnicode(“学生事务管理系统”));
  1. 利用QString::fromLocal8Bit()静态函数;
 w.setWindowTitle(QString::fromLocal8Bit("学生事务管理系统"));
  1. 利用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万国码解决相关推荐

  1. 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)

    尊重作者,支持原创,如需转载,请附上原地址:https://blog.csdn.net/libaineu2004/article/details/19245205 一.Qt Creator环境设置 1 ...

  2. QT中文乱码解决方法2

    转载自:http://blog.163.com/seven_7_one/blog/static/162606412201032955449489/ QT中文乱码的解 2010-04-29 17:54: ...

  3. Qt中文乱码解决思路

    最近项目中遇到不少的Qt中文乱码的问题,主要原因是客户的需求比较多,Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代 ...

  4. 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换

    解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)--ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换 参考文章: (1)解决Qt中文乱码以及汉字编码的问题(U ...

  5. QT中文乱码解决思路和方法汇总

    QT中文乱码解决思路和方法 中文编码一律使用QString::fromLocal8Bit()接口,原因是为了支持QT4版本.QStringLiteral()方法也可以使用,它是支持QT5版本的: CP ...

  6. Qt中文乱码原因及解决方案

    本文主要分析了基于windows系统msvc2013编译器的Qt中文乱码. 概念 字库表:是一个系统支持的文字,符号,数字的集合. 编码字符集(字符集):我们平时所说的字符集就是这个,计算机以二进制的 ...

  7. 用 Python 理清编码问题:Unicode万国码

    Unicode--万国码 为解决语言各自为政的编码,人们提出了Unicode编码方案,这个方案简单粗暴:把世界上所有语言字符统一编码.Unicode的两种方案UCS-2和UCS-4,可使用空间分别达到 ...

  8. Tomcat中文乱码问题的原理和解决方法

    为什么80%的码农都做不了架构师?>>>    Tomcat中文乱码问题的原理和解决方法 自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决 ...

  9. bs4 乱码_Python BeautifulSoup中文乱码问题的2种解决方法

    解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家 首先是代码 复制代码 代码如下: from bs4 im ...

最新文章

  1. 获取Java系统相关信息
  2. linux nohup 英文全称 no hang up(
  3. 信息化的“五观”与“N为”
  4. 《Arduino开发实战指南:LabVIEW卷》——3.2 LabVIEW的数据流编程方法
  5. 【教程】手把手企业FTP搭建实例
  6. 5 日期范围查询_MySQL(四)——复杂查询
  7. 重磅推荐 | 11个名企NLP项目,硅谷科学家帮你转型
  8. C++ const 关键字小结
  9. Winform控件拖动
  10. java 面试题三十三 子类父类方法执行顺序的问题
  11. 前端学习(3143):react-hello-react之总结生命周期
  12. beetl 页面标签_Beetl 2.9.0 发布,修改 HTML 标签的渲染机制
  13. spring源码分析2本最高清带书目PDF百度网盘分享
  14. php javascript 不执行,javascript – 不工作php按钮来执行操作
  15. 爬虫-csdn博客爬虫-打造具有搜索功能的小工具
  16. 每天一个linux命令(55)--at命令
  17. python工具包: argparse
  18. em在聊天中是什么意思_被神化的EM菌,该怎样正确使用?
  19. linux 安装tomcat
  20. 百度文库复制文字代码

热门文章

  1. docker之自定义镜像上传阿里云
  2. MQTT Part 5 主题和最佳实践
  3. 免费分享一个springboot+vue的办公系统
  4. 人生哲理小故事《猎狗与兔子》非常经典的故事
  5. MPC系列-混淆电路
  6. 三菱FX3U与台达DTA温控器modbus通讯案例 实现三菱FX3U与台达DTA温控器进行温度设定
  7. Mysql的课后习题 40T
  8. [ZYNQ随笔] uboot移植中bitstream比特流加载问题:zynq_validate_bitstream: Bitstream is not validated yet
  9. 无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】
  10. php微博登录授权代码,PHP调用微博接口实现微博登录的方法示例