Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt and unicode escape string

I'm getting from server data using signal and slot. Here is slot part:

QString text(this->reply->readAll());

Problem is, that in text variable will be unicode escape, for example:

\u043d\u0435 \u043f\u0430\u0440\u044c\u0441\u044f ;-)

Is there any way to convert this?

like image 215
UnstableFractal Avatar asked Jun 02 '10 18:06

UnstableFractal


2 Answers

I think this is what you needed:

(Find occurrences of \uCCCC using regex and replace them by the QChar with unicode number CCCC in base 16)

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)));
}
like image 112
McK Avatar answered Oct 03 '22 00:10

McK


Did you try:

QString text = QString::fromUtf8(this->reply->readAll());

http://doc.qt.io/qt-5/qstring.html#fromUtf8

Assuming it's Utf8, otherwise use fromUtf16

like image 36
Adam W Avatar answered Oct 02 '22 23:10

Adam W