如何使用QString按代码(例如“4FF0”)指定unicode字符?我试过QString s("\u4FF0");
,但它只输出一个问号。知道怎么做吗?
修改
它的工作原理是这样,但有更直接的方法吗?
std::wstring str = L"\u4FF07";
QString s = QString::fromStdWString(str));
答案 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编码。