1、代码显示时,出现的乱码(这里乱码指各种除了英语以外的交际语言)

  ①在跨平台跨系统开发时,可能会碰到这种乱码情况:

解决Qt中各种乱码问题_语言

  ②解决方案很简单,Windows系统下,如下顺序点击就可以解决乱码问题:

解决Qt中各种乱码问题_乱码_02

2、运行时,出现的乱码(这里乱码指各种除了英语以外的交际语言)有时会出现这种乱码:

解决Qt中各种乱码问题_乱码_03

  ①用QStringLiteral解决此问题:

解决Qt中各种乱码问题_十六进制_04

  ②QStringLiteral也有不行的时候。这时候用另一个绝对管用的方法,用进制代码来解决乱码问题,这要用到Qt的设计师,设计师在每个版本中都有:

解决Qt中各种乱码问题_语言_05

   2-1.用设计师新建一个widget:

解决Qt中各种乱码问题_乱码_06

2-2.把想要的中文,随便拖一个控件,输入进去:

解决Qt中各种乱码问题_进制_07

2-3.查看源码:

解决Qt中各种乱码问题_Qt_08

2-4.我们想要的是中文的进制编码,而Qt就是用如下这个来呈现中文的:

解决Qt中各种乱码问题_Qt_09

2-5.我们看到中文已经变成进制编码了,那么直接应用到我们程序中,这样无论什么操作系统都可以用这个来显示中文(别的国家的语言也可以用这种方法)了:

解决Qt中各种乱码问题_语言_10


为什么会是这样呢?这涉及到Ascii码是计算机进行信息交换的最基本字符标准。常用的ASCII编码和Unicode编码(扩展自ASCII字元集)。汉字机内码与国标码的换算关系是:国标码的汉字代码中的区码与位码分别换算为十六进制数,然后再分别加上十六进制数80,即为该汉字的机内码。
所以,我们通过Qt的设计器,将汉字机内码换算成进制数,再通过解析进制数就不会有问题。
 
一般情况下,还是建议用tr的方法来显示文字,再在国际化中做处理各国语言。除非是一些特定情况才用到这种方式显示各个国家的交际语言。