【发布时间】:2011-09-28 17:01:25
【问题描述】:
如何使用 QString 按代码(例如“4FF0”)指定 unicode 字符?我试过QString s("\u4FF0");,但它只输出一个问号。知道怎么做吗?
编辑:
这样就可以了,但是有没有更直接的方法呢?
std::wstring str = L"\u4FF07";
QString s = QString::fromStdWString(str));
【问题讨论】:
如何使用 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 编码。
【讨论】: