qq_40055114 2021-05-10 19:02 采纳率: 0%
浏览 27

QT5中解决QString中文输出乱码,按照如下解决办法为什么不行?程序输出为什么是这个?怎样解决?

#include "widget.h"
#include "ui_widget.h"

#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# pragma execution_character_set("utf-8")
#endif

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
    QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
#else
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForLocale(codec);
#endif

    QString str("中文");

    qDebug()<<str;
    qDebug()<<QString::fromUtf8("中文");
    qDebug()<<QString::fromLocal8Bit("中文");
}

 

  • 写回答

3条回答 默认 最新

  • CSDN专家-Time 2021-05-10 19:07
    关注

    这是Unicode编码,不是utf8

    评论

报告相同问题?