美文网首页
Qt for Mac中文显示问题

Qt for Mac中文显示问题

作者: 篮筐轰炸机5号 | 来源:发表于2019-11-24 17:48 被阅读0次

Qt的跨平台特性是“一次编写,到处编译”,把Windows下写好的一个小程序源码直接复制过来尝试编译,结果遇到了各种中文乱码的问题。

系统:Mac OS,Qt版本:


Qt Creator版本

出现乱码的主要原因是:中文版windows默认gbk编码,而Linux/Mac默认为utf-8编码,原先的gbk编码被utf-8的编码解释就出现了乱码。

下面是各种乱码的解决方法。

编辑器显示乱码

this->setWindowTitle("������������");
这个好解决,载入时Qt Creator会提示是否重新载入编码,选择UTF-8即可:

重新载入编码

无法输入中文

发现无法输入中文,即便是中文输入法。解决方法参考:
https://blog.csdn.net/weixin_33762130/article/details/91960441

【偏好设置】->【环境】->【语言】下拉框,设置为Chinese(China),保存,重启即可。

编译出现warning,界面仍然乱码

编译时,所有出现中文的代码,都会出现一大堆warning:
warning: illegal character encoding in string literal [-Winvalid-source-encoding]

程序界面中的中文也仍然是乱码。

费了很大功夫,终于找到了答案,把文件编码按照如下设置即可:

文件编码设置

以后新建项目或文件时,就直接可以正常显示中文了。

扩充知识:常见中文编码的区别

参考资料:字符编码:GBK、GB2312、UTF-8

中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。

汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时扩充了很多。

中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。

每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。终于,有个叫 ISO 的组织看不下去了。他们一起创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。

于是就会有人产生疑问,UTF-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 GBK 等编码的人?因为 UTF-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用 GBK 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,电脑性能也已经足够无视这点性能的消耗了。

结论:推荐所有的网页使用统一编码:UTF-8

相关文章

  • Qt for Mac中文显示问题

    Qt的跨平台特性是“一次编写,到处编译”,把Windows下写好的一个小程序源码直接复制过来尝试编译,结果遇到了各...

  • qt中文注释乱码显示不全

    问题展示:qt 源代码中,中文注释显示乱码如何解决? qt中文注释乱码_显示不全.png 解决办法(参考): Wi...

  • QT中将gbk字符转换为utf-8字符

    对于中文显示,由于QT默认采用UTF-8编码显示,若在控件中使用GBK类型的中文,则会显示乱码。 给Qt控件设置内...

  • Qt中文乱码问题

    Qt在显示中文时会出现乱码或者编译不过的情况 主要由以下问题造成 ,在Qt+VS的搭建的环境下,如果源码文件保存为...

  • QT中文乱码问题(字符串变量)

    文章总结在最后面,想快速解决问题的可以直接拉到最后。 一、使用变量显示中文字符 到QT5以后,一般情况下要显示中文...

  • Qt5.7中文显示乱码解决方法两种

    升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里...

  • Qt开发中文显示乱码

    为什么会出现乱码 首先,我们需要有的概念是乱码的问题是由编码和解码方式引起的。涉及到编码方式的地方有3个: 源码字...

  • ffmpeg for mac调用

    FFMPEG for mac 链接问题 在mac 编译OXS平台的FFMPEG 在QT调用时遇到链接不过的问题.起...

  • 安装Python WARNING: The version of

    Mac安装Python3,遇到IDLE中无法输入中文的问题,shell中显示如下警告 上网百度之,猜测是因为mac...

  • MAC下python使用matplotlib画图解决中文问题

    在MAC电脑上python导入matplotlib包进行图表显示是会遇到显示中文出现如下图: 遇到上述问题时,可以...

网友评论

      本文标题:Qt for Mac中文显示问题

      本文链接:https://www.haomeiwen.com/subject/ehqqictx.html