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