Qt的跨平台特性是“一次编写,到处编译”,把Windows下写好的一个小程序源码直接复制过来尝试编译,结果遇到了各种中文乱码的问题。
系统:Mac OS,Qt版本:
Qt Creator版本
出现乱码的主要原因是:中文版windows默认gbk编码,而Linux/Mac默认为utf-8编码,原先的gbk编码被utf-8的编码解释就出现了乱码。
下面是各种乱码的解决方法。
编辑器显示乱码
this->setWindowTitle("������������");
这个好解决,载入时Qt Creator会提示是否重新载入编码,选择UTF-8即可:
重新载入编码
无法输入中文
【偏好设置】->【环境】->【语言】下拉框,设置为Chinese(China),保存,重启即可。
编译出现warning,界面仍然乱码
编译时,所有出现中文的代码,都会出现一大堆warning:
warning: illegal character encoding in string literal [-Winvalid-source-encoding]
程序界面中的中文也仍然是乱码。
费了很大功夫,终于找到了