在做Qt项目的时候,在大哥(佬)创建好的文件中直接敲代码一切很正常,有一次需要自己创建个设计师界面类,问题就出现了。ui文件里中文正常显示,但是在cpp文件中qDebug和给控件重新赋值就不行了,一堆的乱码,对比了一下别的文件,发现并没有什么不同,头疼了一天。
在翻阅了大量的文章后,突然反应过来,可能不是代码的事,是不是qt creator设置的事,于是终于找到了原因,如图:
我的编码默认是使用utf-8,在新建的时候并没有添加utf-8的BOM,所以系统就不按utf-8来编译(我猜的)。
解决办法:在qt creastor乱码的文件中右键选择Add UTF-8 BOM on Save即可。
在使用中。为了预防中文乱码问题,最好在.h文件中加上这么一段代码:
//解决QT+VS中文乱码问题
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
双管齐下,问题趴下。