qtで文字化けしたQString中国語の問題を解決する

Qtで中国語が文字化けする問題を解決する


Qtでは、デザイナーインターフェースで設定した中国語のタイトルを正常に表示できます。
ただし、たとえばQStringでは、QPainterがテキストを描画するときに、着信文字*に中国語が含まれていると、通常、文字化けした文字が表示されます。この時点で2つの場所を設定する必要があります。

  1. main.cppでQTextCodecを設定します
  2. QStringは、
    最初に静的メソッドfromLocal8Bit(char *)使用します。これは、main.cppで次のように設定できます。
#include "MainWindow.h"

#include <QApplication>
#include <QTextCodec>

int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);
    QTextCodec* codec = QTextCodec::codecForName("GB2312");
    QTextCodec::setCodecForLocale(codec);
    MainWindow w;
    w.show();
    return a.exec();
}

第二に、中国語を含むchar *では次のメソッドが使用されます。

QString::fromLocal8Bit(char*)

QStringを渡す必要がある場所で、中国語が含まれている場合は、上記の2つの場所の設定が必要です。

おすすめ

転載: blog.csdn.net/GeomasterYi/article/details/110916311