26

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

编辑:

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

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

4 回答 4

29

如果直接指的是使用 Unicode 代码点值,那么QChar可能是:

QString s = QChar(0x4FF0);
于 2011-09-28T17:18:05.293 回答
17

显然 '\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");
于 2011-09-28T17:40:10.027 回答
6

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

QString s(u8"\u4FF0");
于 2019-12-04T05:34:59.007 回答
0

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

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

于 2017-11-27T21:54:09.933 回答