Qt5-MSVC2012-qDebug中文亂碼解決方法


1、首先看代碼:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    qDebug() << QString("就是這么嗲!%1").arg("你好");

    return a.exec();
}

現象1:這段中文在MinGW下打印是正常的,如下:

"就是這么嗲!你好"

現象2:這段文字在VS下的QT上顯示亂碼,如下:

"??????????????"

2、VS下亂碼通用方法

//使用QStringLiteral
qDebug() << QStringLiteral("就是這么嗲!");

問題:這樣的話可以正常打印出中文,但是如果想使用變量,如何配合QString().arg()這種方式呢?

一招致勝:

QString str = QStringLiteral("你好");
qDebug() << QString(QStringLiteral("就是這么嗲!%1")).arg(str);

這樣的話,VS下就可以正常打印出帶變量的中文字符串了,結果如下:

"就是這么嗲!你好"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM