一、起因及现象
qt+mingw相性>qt+msvc
在mingw下编译无问题,在msvc下编译成功,但显示的中文乱码,如下
二、原因分析
Qt默认的编码格式为UTF-8,而MSVC使用的编码为GBK编码,当使用Qt MSVC版本进行编译而源码采用UTF-8保存时就会出现中文乱码问题。
三、解法有三
1.找到工具-》选项-》文本编辑器(亲测有效)
在pro文件里添加如下代码即可
msvc{
QMAKE_CFLAGS += /utf-8
QMAKE_CXXFLAGS += /utf-8
}
2. 在报错的文件开头添加如下代码,更改编码格式(亲测有效)
#pragma execution_character_set("utf-8")
3.在中文乱码的地方,在字符串的最后加一个空格(没成功,不知道是不是姿势不对------)
四、注意
如果修改后,编译出来的还是乱码,先把之前的编译的文件删掉,再编译一次。
(啊~渣渣qt creator,我vs宇宙第一!!!/(ㄒoㄒ)/~~)
bz:mingw没问题,而msvc编译不过的话,找到出错的代码,删掉重写一遍(原因中英文全半角符号导致)
我有一口槽不吐不快啊~~~~mingw是qt亲儿子,但能力不足。msvc是干儿子,能力出众,但不受待见(嘤嘤/(ㄒoㄒ)/~~)