使用 QString 如何指定 Unicode 字符?

28

我该如何使用QString指定Unicode字符代码(例如“4FF0”)?我尝试使用QString s("\u4FF0");,但只会输出一个问号。有没有更好的方法?

编辑:

虽然这种方法可行,但是否有更直接的方法?

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

32
如果你的意思是通过使用Unicode代码点值来实现直接操作,那么QChar或许是一个选择:
QString s = QChar(0x4FF0);

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");

标准的 C++ 是否支持 \u? - Sergei Tachenov
@Sergey 是的,自C++98以来就支持了。 - alexisdm

6
自 C++11 起,您可以使用 UTF-8 字符串字面量前缀(u8):
QString s(u8"\u4FF0");

0
作为直接指针,请尝试使用QString(QChar(0x4FF0));
您需要确保使用了正确的UTF-16编码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接