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?

¿Fue útil?

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
scroll top