#include <cstdio>
#include <QtCore/QString>
#include <QtCore/QTextStream>
int main() {
QString str = QString::fromWCharArray(L"???? Hello ??????????");
QString escaped;
escaped.reserve(6 * str.size());
for (QString::const_iterator it = str.begin(); it != str.end(); ++it) {
QChar ch = *it;
ushort code = ch.unicode();
if (code < 0x80) {
escaped += ch;
} else {
escaped += "\\u";
escaped += QString::number(code, 16).rightJustified(4, '0');
}
}
QTextStream stream(stdout);
stream << escaped << '\n';
}
Run Code Online (Sandbox Code Playgroud)
请注意,这会循环使用UTF-16代码单元,而不是实际代码点.