我正在构建一个应用程序,它通过 tcp 接收带有编码 unicode 的运行时字符串,示例字符串为“\u7cfb\u8eca\u4e21\uff1a\u6771\u5317 ...”。我有以下内容,但不幸的是,我只能在编译时从中受益,因为:不完整的通用字符名称 \u 因为它在编译时需要 4 个十六进制字符。
QString restoreUnicode(QString strText)
{
QRegExp rx("\\\\u([0-9a-z]){4}");
return strText.replace(rx, QString::fromUtf8("\u\\1"));
}
我正在寻找运行时的解决方案,我可以预见到分解这些字符串并进行一些操作以将“\u”分隔符之后的那些十六进制转换为基数 10,然后将它们传递给 QChar 的构造函数,但我正在寻找如果存在更好的方法,因为我非常担心这种方法所产生的时间复杂度并且不是专家。
有没有人有任何解决方案或提示。