概述
一、解决方法
1.Qt文档推荐的方法
- 所有文件选择使用UTF-8编码存储
所有文件包括源文件,读写文件等。
- 对所有可见的字符串文本使用QStringLiteral 或 QString::fromUtf8()
- 对所有用户可见的字符串使用tr()
2.执行全局函数设置编码格式
1.Qt5之后
在main函数的QApplication之后,实例之前,调用
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
2.Qt5之前
通过QTextCodec调用全局函数setCodecForCStrings、setCodecForLocale、setCodecForTr来设置QString、本地、翻译项的字符集。
3.添加宏,设置执行字符集
条件:保证源代码文件是UTF-8
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# pragma execution_character_set("utf-8")
#endif
若源代码文件不保证是UTF-8,则源文件中的中文可用QStringLiteral进行处理。
二、 一些关于编码的小知识
源字符集
1、概念
保存源文件所使用的字符编码
这里的字符编码,有时候会说成字符集,但字符集又通常指的是多种字符编码所组成的集合
2、作用:
用于解析源文件的代码。打个比方,读懂项目源码必须知道它所使用的编程语言。
一般而言,在仅使用ASCLL字符时,无须关注源字符集,对于汉字,由于不同编码的解析是不同的,所以需要特别注意。
执行字符集
1.概念及作用
源文件中的代码经过编译器的解析后,翻译成计算机看得懂的二进制代码(可执行程序),而字符串及字符常量则以某种编码进行存储在内存中。
此处的某种编码正是执行字符集
最后
以上就是聪慧蓝天为你收集整理的Qt的乱码解决方案一、解决方法二、 一些关于编码的小知识的全部内容,希望文章能够帮你解决Qt的乱码解决方案一、解决方法二、 一些关于编码的小知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复