QT 中文字符报错乱码 C2001
由于工作限制QT只能用很早的版本,学QT的时候,使按钮显示字符setText中放入中文字符,编译时报错

网上查了很多方法,主要是字符编码不一致的问题,这里总结一下
首先查一下编码是不是UTF-8
上方菜单栏中点击工具,在下拉列表里点击选项

在弹出的选项窗口中,进入文本编辑器->行为界面

右边文件编码模块,保证默认编码为UTF-8

然后加个头文件
#include <QTextCodec>
就加在出问题的那个文件里

后来新建一个项目发现还要加一个开关
#pragma execution_character_set("utf-8")
也是加在出问题的那个文件里

把要输入的中文字符放进 QString::fromUtf8 函数里

这样改完还是报错(
有人说在中文字符最后加个空格把双引号和中文隔开

加上空格之后可以运行了但是是乱码

后来无意间发现一个很神奇的现象,中文字符个数是奇数的时候可以正常显示,是偶数就不行
最终找到的解决方法:
找到出问题的这个文件所在的位置

用记事本打开之后,点击文件->另存为

窗口下面有个编码
改成带有BOM的UTF-8

保存,直接替换掉原文件

回到QT,会弹出一个窗口

然后再运行,就可以成功显示中文了


浙公网安备 33010602011771号