为了彻底弄清QT以及MSVC的工作原理, 下面用4个例子来实战

笔的UTF-8的表示为\XE7 \XAC \X94,GB2312的表示为\XB1 \XCA

1.

    QString string1("笔");qDebug() << string1;qDebug() << string1.toUtf8() ;qDebug() << string1.toLocal8Bit() ;

2.

代码同上, 我们在文件头部加上

#pragma execution_character_set("utf-8")

3.

        QString string("笔");qDebug()  << FindWindow(NULL, "笔");qDebug()  << FindWindow(NULL, string.toUtf8());qDebug()  << FindWindow(NULL, string.toLocal8Bit());
4.
   代码同上, 我们在文件头部加上  #pragma execution_character_set("utf-8")

实验结果

有几点说明.
1. 由于我们的QTCreator里面BOM是Adding IF Encoding is UTF-8, 所以compiler input也会是UTF-8.
2. 当我们在C++头部文件加入#pragma execution_character_set("utf-8")时, compiler output会是UTF-8, 否则默认是GB2312
3. 当toUtf8()不能解释时会用EF BF BD来替换
4. 当toLocal8Bit()不能解释时会用3F 来替换
5. FindWindow中的名字要跟系统中窗口的名字比较, 而系统的窗口的名字编码为GB2312.

QT中文乱码深度剖析相关推荐

  1. Qt中文乱码解决思路

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

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

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

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

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

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

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

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

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

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

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

  7. vs2010 qt中文乱码 最终版

    2020.11.27 最后终于把这玩意里理解明白了,可能是翻译引起的理解差异吧.微软对此做出的解释: 对于vs编译器来说,有两个概念: 源字符集 执行字符集 对于vs2010 sp1-VS2015,引 ...

  8. Qt中文乱码解决办法

    目录 一.解决方法: 1. QT4版本 2. QT5版本 二.QString 为什么会乱码呢 三.tr的使用 一.解决方法: 1. QT4版本 中文乱码解决办法是在main.cpp文件加入: #inc ...

  9. Qt中文乱码--使用Unicode万国码解决

    需求 Qt界面开发过程中可能使用到多个语言的字符.需要解决乱码问题. API介绍 Qt 提供类:QTextCodec Class,用来支持各种编码协议,支持: ISO 2022-JP ISO 8859 ...

最新文章

  1. photo常用快捷键
  2. 【SSM整合案例】静态资源和分页标签的添加
  3. 第8章:Kubernetes 安全
  4. java清除输出内容_java – 从JSch中的命令输出中删除shell东西...
  5. Pandas列小数转化为百分数
  6. android中的多媒体应用camera
  7. Sqli-labs less 29
  8. Information Retrieval --- Classification
  9. MySQL | MySQL 数据库系统(四)- 数据库的备份与恢复
  10. 记住看小电影前一定要检查一下域名是不是 HTTPS 的,不然……
  11. 最新!2020录取分数百强大学榜发布:清华文科第一,北大理科第一!
  12. win10局域网文件服务器,win10 局域网文件共享
  13. [C#]六十甲子纳音WM版 v2.1 By:LESLIE
  14. rk3288 android7.1.2 4g模块调试(四)
  15. Zemax OpticsBuilder
  16. 蒙特卡洛算法简单理解与demo
  17. 接入阿里云短信,OSS,实人认证
  18. 由于无法验证发布者 所以windows阻止此软件
  19. 【转】详细解析电源滤波电容的选取与计算
  20. 1.16 使用JTAppleCalendar制作漂亮的日历 [iOS开发中的神兵利器]

热门文章

  1. Python编译、运行、反编译pyc文件
  2. Python+OpenCV:图像金字塔
  3. 蒙特卡洛粒子滤波定位算法_序列蒙特卡洛(SMC)与粒子滤波
  4. 断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布...
  5. vue-cli配置环境:
  6. Dubbo使用multicast广播注册中心暴露服务地址时启动报错empty notify
  7. 学习动态性能表 第五篇--V$SESSION
  8. 对于已经做“大”了的企业,最需要什么?
  9. 实用分享-学习资料下载器
  10. linux 清空进程recv q,Linux中ss命令Recv-Q和Send-Q详解