QT界面,中文显示乱麻

图片说明

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

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

2.如何解决?

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

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

 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

在程序开始加上面代码

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

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