问题描述
- 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");等注掉后,就能正常显示中文了,并且之前显示问号的问题也没有了。但这只是权宜之计,没有解决根本问题。
解决方案四:
如何在qt中显示中文
qt界面中文翻译
QT界面中文翻译
解决方案五:
直接的办法,将文件格式改为utf-8编码格式,在字符串前面加上QStringLiteral
时间: 2024-08-07 19:43:29