Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QJsonObject插入会损坏utf8字符串_Json_Qt_Qt5.1 - Fatal编程技术网

QJsonObject插入会损坏utf8字符串

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).

我有一段代码,其中tag.m_description是一个包含西里尔字符的QString:“êêêêêêê”

这是调试语句的第一个和第二个输出:

\\\\\\
⠄䤄㬄䤄

第一个输出是好的。第二个不是


知道为什么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());