QjsonObject Insert Corromts UTF8 String
Pregunta
Tengo este código donde tag.m_descripción es un QString que contiene caracteres cirílicos: "шщлщ"
QJsonObject json;
QJsonObject::iterator it =
json.insert("value", QJsonValue( tag.m_description );
qDebug(QJsonValue( tag.m_description ).toString());
qDebug((*it).toString());
Esta es la primera y la segunda salida de las declaraciones de depuración:
шщлщ
⠄ 䤄㬄 䤄
La primera salida es buena.El segundo no es.
Cualquier idea de por qué QjsonObject :: ¿Insertar está dañando mis datos?
Solución
Descubrí, mirando el código fuente de QJsonObject
, que la cadena se almacena como una cadena Unicode en lugar de UTF-8.Se almacena internamente en una matriz UTF-16 (dos bytes por carácter).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow