QJsonObject插入会损坏utf8字符串
我有一段代码,其中tag.m_description是一个包含西里尔字符的QString:“êêêêêêê” 这是调试语句的第一个和第二个输出: \\\\\\QJsonObject插入会损坏utf8字符串,json,qt,qt5.1,Json,Qt,Qt5.1,我有一段代码,其中tag.m_description是一个包含西里尔字符的QString:“êêêêêêê” 这是调试语句的第一个和第二个输出: \\\\\\ ⠄䤄㬄䤄 第一个输出是好的。第二个不是 知道为什么QJsonObject::insert会破坏我的数据吗?我在查看QJsonObject源代码时发现,字符串存储为unicode字符串,而不是utf-8。它在内部存储在utf-16(每个字符两个字节)数组中。是否(*It).isString()返回true或false?我刚刚尝试(*It).
⠄䤄㬄䤄 第一个输出是好的。第二个不是
知道为什么QJsonObject::insert会破坏我的数据吗?我在查看
QJsonObject
源代码时发现,字符串存储为unicode字符串,而不是utf-8。它在内部存储在utf-16(每个字符两个字节)数组中。是否(*It).isString()返回true或false?我刚刚尝试(*It).isString()。它返回true。顺便说一句,对setlocale(LC_ALL,“”)的a调用显示当前的语言环境是否为您使用的5.1?您是否尝试过最新的代码,最好是5.3.0 beta版?我不会使用qDebug()来调试编码问题。打印内容将取决于您的系统区域设置、shell等。最好打印toUtf8().toHex()之类的内容并进行比较。
QJsonObject json;
QJsonObject::iterator it =
json.insert("value", QJsonValue( tag.m_description );
qDebug(QJsonValue( tag.m_description ).toString());
qDebug((*it).toString());