qdebug中文显示乱码

时间:2021-07-13 08:45:32
#include <QtGui/QApplication>
#include <QtGui/QLabel>
#include<QTextCodec>
#include<QDebug>
int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));
     QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));
     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gbk"));

     qDebug() << QObject::tr("中文");
     QLabel *label = new QLabel(QObject::tr("你好"));
     label->show();
    return app.exec();
}

在tools下的options设置源码的默认编码为gbk。
qdebug显示乱码,label正常,
为什么啊?

4 个解决方案

#1


你的系统期待qDebug() 使用什么编码,为什么要改locale的编码??

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

#2


用QString::fromLocal8Bit(" 你的字符串");

#3


CodecForName(“UTF-8”)

#4


1楼正解! qdebug中文显示乱码

#1


你的系统期待qDebug() 使用什么编码,为什么要改locale的编码??

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

#2


用QString::fromLocal8Bit(" 你的字符串");

#3


CodecForName(“UTF-8”)

#4


1楼正解! qdebug中文显示乱码