我正在使用信号和槽从服务器获取数据。以下是槽部分:
QString text(this->reply->readAll());
问题在于,文本变量中将包含Unicode转义字符,例如:
\u043d\u0435 \u043f\u0430\u0440\u044c\u0441\u044f ;-)
有没有办法将这个转换?
QRegExp rx("(\\\\u[0-9a-fA-F]{4})");
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1) {
str.replace(pos++, 6, QChar(rx.cap(1).right(4).toUShort(0, 16)));
}
您尝试过以下方法吗:
QString text = QString::fromUtf8(this->reply->readAll());
http://doc.qt.io/qt-5/qstring.html#fromUtf8
假设它是Utf8编码,否则请使用fromUtf16
函数。
QString text = reply->readAll().replace("\","\\");
[{"recipient":{"favourites_count":1,"profile_text_color":"000000","url":null,"description":"\u0421\u0442\u0443\u0434\u0435\u043d\u0442 4-\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u041c\u0418\u042d\u041c
传入,还是只传 Unicode 部分?我认为你需要先进行一些分离工作,因为它的格式混合在一起。 - Adam W