Я создаю приложение, которое получает строки времени выполнения с закодированным юникодом через tcp, примером строки будет "\ 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, но я ищу лучший способ, если таковой существуетпоскольку меня очень беспокоит сложность времени, вызванная таким методом, я не эксперт.
У кого-нибудь есть какие-либо решения или советы.