在最新版本的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编码。