如何使用QString指定unicode字符?

时间:2011-09-28 17:01:25

标签: qt unicode qstring

如何使用QString按代码(例如“4FF0”)指定unicode字符?我试过QString s("\u4FF0");,但它只输出一个问号。知道怎么做吗?

修改

它的工作原理是这样,但有更直接的方法吗?

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

4 个答案:

答案 0 :(得分:25)

如果直接意味着使用Unicode代码点值,那么QChar可能是:

QString s = QChar(0x4FF0);

答案 1 :(得分:15)

显然'\ 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");

答案 2 :(得分:2)

自C ++ 11起,您可以使用UTF-8字符串文字前缀(u8):

QString s(u8"\u4FF0");

答案 3 :(得分:0)

作为直接指针,尝试QString(QChar(0x4FF0));

您需要确保拥有正确的utf-16编码。