当我使用QJsonDocument :: fromJson时,UTF8字符串无效

时间:2016-02-28 06:51:06

标签: json qt utf-8 rhel rhel5

在最新版本的Ubuntu中,由qt creator编写。 Qt版本是qt 5.41。当我使用QJsonDocument :: fromJson创建json对象时,json对象已成功创建。代码如下:

#include <QJsonDocument>
#include <QDebug>

int main(int argc,char **argv){
    QString str = "{\"chinese\":\"china 中国\"}";
    QJsonDocument json;
    QJsonParseError error;
    json = QJsonDocument::fromJson(str.toUtf8(),&error);

    qDebug()<<json.toJson();
    //In Rhel5 Result:NULL

    qDebug()<<error.errorString();
     //In Rhel5 Result:invalid UTF8 string"

    str = "{\"english\":\"china english\"}";
    json = QJsonDocument::fromJson(str.toUtf8(),&error);

    qDebug()<<json.toJson();
   //In Rhel5 Result successful : 
  //    {
  //    "english": "china english"
  //     }

   qDebug()<<error.errorString();//In Rhel5 Result:no error occurred""
 return 0;
}

但是,当在rhel5上运行完全相同的代码时,我得到了错误的描述:无效的UTF8字符串。在rhel5,编译qt5库函数,这样就可以在qt5 rhel5上执行程序。

当json字符串是英文时,rhel5正常运行,请更正json字符串。

此外,rhel5支持utf-8编码。

0 个答案:

没有答案