QT 中文字符报错乱码 C2001

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

 

网上查了很多方法,主要是字符编码不一致的问题,这里总结一下

首先查一下编码是不是UTF-8

上方菜单栏中点击工具,在下拉列表里点击选项

 

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

 

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

 

然后加个头文件

#include <QTextCodec>

就加在出问题的那个文件里

 

后来新建一个项目发现还要加一个开关

#pragma execution_character_set("utf-8")

也是加在出问题的那个文件里 

 

 

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

 

这样改完还是报错(

有人说在中文字符最后加个空格把双引号和中文隔开

 

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

 

 

后来无意间发现一个很神奇的现象,中文字符个数是奇数的时候可以正常显示,是偶数就不行

最终找到的解决方法:

找到出问题的这个文件所在的位置

 

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

 

窗口下面有个编码

改成带有BOM的UTF-8

 

保存,直接替换掉原文件

 

回到QT,会弹出一个窗口

 

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

 

posted @ 2024-07-29 10:48  SAKURA12  阅读(97)  评论(0编辑  收藏  举报