web-dev-qa-db-ja.com

QStringを使用してUnicode文字を指定するにはどうすればよいですか?

QStringを使用してコード(「4FF0」など)でUnicode文字を指定するにはどうすればよいですか? QString s("\u4FF0");を試しましたが、疑問符しか出力されません。これを行う方法はありますか?

編集:

それはそのように機能しますが、もっと直接的な方法はありますか?

std::wstring str = L"\u4FF07";
QString s = QString::fromStdWString(str));
25
laurent

直接、Unicodeコードポイント値を使用することを意味する場合、 QChar は次のようになります。

QString s = QChar(0x4FF0);
27
Stephen Chu

どうやら '\ u'はUTF-8でのみ機能します:

QString s = QString::fromUtf8("\u4FF0");

// Or with that at the start of your main function:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
...
QString s("\u4FF0");
16
alexisdm

C++ 11以降では、UTF-8文字列リテラルプレフィックス(u8):

QString s(u8"\u4FF0");
4
Timur Bogdanov

直接ポインターとして、QString(QChar(0x4FF0));を試してください。

正しいutf-16エンコーディングがあることを確認する必要があります。

0
jmm