2 zhk7894613 zhk7894613 于 2016.03.27 22:18 提问

QT界面,中文显示乱麻 20C

图片说明

本来好好的,但是因为一行中文的最后一个汉字在QT界面显示为“?”。看了网上各种方法,就不断尝试。尝试其中一种方法,将源文件的编码方式分别改为ANSI/UTF-8/Unicode,并保存编译。发现界面的汉字全变为乱码了,如图。也不知道如何恢复到之前的状态。

1.请问这是什么原因呢?

2.如何解决?

3.如何恢复到之前的状态呢?

5个回答

broust
broust   2016.03.27 22:23

源文件的编码格式和编译时用的编码不一致?

zhk7894613
zhk7894613 如何让两者一致呢?源文件的编码格式可以通过文本文档打开,并保存为UTF-8/Unicode/ANSI等;编译时的编码格式,在QT creator里什么地方设置呢?
一年多之前 回复
lx624909677
lx624909677   Ds   Rxr 2016.03.27 22:55
 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

在程序开始加上面代码

zhk7894613
zhk7894613 我是在QT5里面写的,添加上面的,会报错,““setCodecForCStrings”: 不是“QTextCodec”的成员”。
一年多之前 回复
zhk7894613
zhk7894613   2016.03.28 11:00

所有中文显示乱麻后,将tr("序号")改为QString::fromLocal8Bit("序号"),并且在main函数将QTextCodec *codec = QTextCodec::codecForName("UTF-8");等注掉后,就能正常显示中文了,并且之前显示问号的问题也没有了。但这只是权宜之计,没有解决根本问题。

CSDNXIAON
CSDNXIAON   2016.03.30 11:27

如何在qt中显示中文
qt界面中文翻译
QT界面中文翻译
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

u010177010
u010177010   2016.05.25 17:45

直接的办法,将文件格式改为utf-8编码格式,在字符串前面加上QStringLiteral

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!