QT中文乱码深度剖析
为了彻底弄清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中文乱码深度剖析相关推荐
- 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中文乱码原因及解决方案
本文主要分析了基于windows系统msvc2013编译器的Qt中文乱码. 概念 字库表:是一个系统支持的文字,符号,数字的集合. 编码字符集(字符集):我们平时所说的字符集就是这个,计算机以二进制的 ...
- 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
尊重作者,支持原创,如需转载,请附上原地址:https://blog.csdn.net/libaineu2004/article/details/19245205 一.Qt Creator环境设置 1 ...
- QT中文乱码解决思路和方法汇总
QT中文乱码解决思路和方法 中文编码一律使用QString::fromLocal8Bit()接口,原因是为了支持QT4版本.QStringLiteral()方法也可以使用,它是支持QT5版本的: CP ...
- QT中文乱码解决方法2
转载自:http://blog.163.com/seven_7_one/blog/static/162606412201032955449489/ QT中文乱码的解 2010-04-29 17:54: ...
- vs2010 qt中文乱码 最终版
2020.11.27 最后终于把这玩意里理解明白了,可能是翻译引起的理解差异吧.微软对此做出的解释: 对于vs编译器来说,有两个概念: 源字符集 执行字符集 对于vs2010 sp1-VS2015,引 ...
- Qt中文乱码解决办法
目录 一.解决方法: 1. QT4版本 2. QT5版本 二.QString 为什么会乱码呢 三.tr的使用 一.解决方法: 1. QT4版本 中文乱码解决办法是在main.cpp文件加入: #inc ...
- Qt中文乱码--使用Unicode万国码解决
需求 Qt界面开发过程中可能使用到多个语言的字符.需要解决乱码问题. API介绍 Qt 提供类:QTextCodec Class,用来支持各种编码协议,支持: ISO 2022-JP ISO 8859 ...
最新文章
- photo常用快捷键
- 【SSM整合案例】静态资源和分页标签的添加
- 第8章:Kubernetes 安全
- java清除输出内容_java – 从JSch中的命令输出中删除shell东西...
- Pandas列小数转化为百分数
- android中的多媒体应用camera
- Sqli-labs less 29
- Information Retrieval --- Classification
- MySQL | MySQL 数据库系统(四)- 数据库的备份与恢复
- 记住看小电影前一定要检查一下域名是不是 HTTPS 的,不然……
- 最新!2020录取分数百强大学榜发布:清华文科第一,北大理科第一!
- win10局域网文件服务器,win10 局域网文件共享
- [C#]六十甲子纳音WM版 v2.1 By:LESLIE
- rk3288 android7.1.2 4g模块调试(四)
- Zemax OpticsBuilder
- 蒙特卡洛算法简单理解与demo
- 接入阿里云短信,OSS,实人认证
- 由于无法验证发布者 所以windows阻止此软件
- 【转】详细解析电源滤波电容的选取与计算
- 1.16 使用JTAppleCalendar制作漂亮的日历 [iOS开发中的神兵利器]
热门文章
- Python编译、运行、反编译pyc文件
- Python+OpenCV:图像金字塔
- 蒙特卡洛粒子滤波定位算法_序列蒙特卡洛(SMC)与粒子滤波
- 断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布...
- vue-cli配置环境:
- Dubbo使用multicast广播注册中心暴露服务地址时启动报错empty notify
- 学习动态性能表 第五篇--V$SESSION
- 对于已经做“大”了的企业,最需要什么?
- 实用分享-学习资料下载器
- linux 清空进程recv q,Linux中ss命令Recv-Q和Send-Q详解