QStringを使用してコード(「4FF0」など)でUnicode文字を指定するにはどうすればよいですか? QString s("\u4FF0");
を試しましたが、疑問符しか出力されません。これを行う方法はありますか?
編集:
それはそのように機能しますが、もっと直接的な方法はありますか?
std::wstring str = L"\u4FF07";
QString s = QString::fromStdWString(str));
直接、Unicodeコードポイント値を使用することを意味する場合、 QChar
は次のようになります。
QString s = QChar(0x4FF0);
どうやら '\ 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");
C++ 11以降では、UTF-8文字列リテラルプレフィックス(u8
):
QString s(u8"\u4FF0");
直接ポインターとして、QString(QChar(0x4FF0));を試してください。
正しいutf-16エンコーディングがあることを確認する必要があります。