我是靠谱客的博主 聪慧蓝天,最近开发中收集的这篇文章主要介绍Qt的乱码解决方案一、解决方法二、 一些关于编码的小知识,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、解决方法

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的乱码解决方案一、解决方法二、 一些关于编码的小知识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部