hechengjin 发表于 2016-6-28 16:12:37

QT控件 QTextEdit 中文显示乱码

QT5中文这么用(QStringLiteral("中文");
QT4中文这么用tr("中文");



hechengjin 发表于 2016-6-28 16:13:06

QTextCodec *gbk = QTextCodec::codecForName("GBK");main函数得有这句话

hechengjin 发表于 2016-6-28 16:13:47

QTextCodec* pCodec = QTextCodec::codecForName("UTF-8");
    QString strResult = pCodec->toUnicode(resultContent);

hechengjin 发表于 2016-6-28 16:14:06

由于从文件中提取出来的数据为QByteArray类型的,而lineEdit需要的是QString类型的
myLineEdit->setText(QString::fromLocal8Bit(dataFromFile.mid(idx, len).data()));

Qter 发表于 2020-2-21 12:51:49

Qt4中使用如下方法:
QTextCodec *codec = QTextCodec::codecForName("gbk");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);但是在Qt5中该函数已经被KO了.1.最直接最有效的方法:  在Qt的安装路径找到bin同级目录的include文件夹,在其下找到qglobal.h头文件,在其中加入以下代码:#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif这样就可以解决所有中文显示乱码问题。注意文件也要保存为utf-8!!2. 直接使用函数QStringLiteral("我是中文");也可以解中文乱码问题,但是个人认为还是很麻烦。  以上方法均在QtCreator中试验成功。
页: [1]
查看完整版本: QT控件 QTextEdit 中文显示乱码