Qt技巧:中文显示乱码问题解决

来源:互联网 发布:灵娱网络每天流水多少 编辑:程序博客网 时间:2024/06/17 23:52

本人使用的Qt版本为5.8.0,以下说明适用于Qt 5.4及以上版本。

1、使用国际化,tr("中文"),也是无法显示,就算添加下面的代码,也还是无法显示。不管name是GBK、GB2132、UTF-8,均已证实无效。

QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));

2、在main()中添加

#if _MSC_VER >= 1600#pragma execution_character_set("utf-8")#endif
已测试无效。

3、在main()中添加(参考)

    #if QT_VERSION < QT_VERSION_CHECK(5,0,0)    #if defined(_MSC_VER) && (_MSC_VER < 1600)        QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030-0"));    #else        QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));    #endif    #endif
已测试无效。

解决办法:

QString::fromLocal8Bit("中文");
已证实有效。
QString filename = QFileDialog::getOpenFileName(this,QString::fromLocal8Bit("打开文件"),"C:/");