当我用重音保存我的 json 时,我有错误的文本 (Qt)
When I save my json with accent I have wrong text (Qt)
当我想创建 json 格式 (Qt) 的存档时,我使用了法语口音 é :我用这个字符代替了 ÃÆ'©ro
原始(QString):"sauvegarde numréro 1"
已保存(在 json 中):"sauvegarde numéro 1"
ps: "sauvegarde numéro 1" 在法语中的意思是 "save number 1"
保存方法:
QFile saveFile ("save.json");
if (!saveFile.open(QIODevice::WriteOnly|QIODevice::Text)) {
return false;
}
QJsonDocument saveDoc(m_jsonarray);
return saveFile.write(saveDoc.toJson());
已保存 json:
{
"created": "2017/9/12-16h19m3s",
"id": "20170912161903",
"modified": "2017/9/12-16h19m3s",
"owner": "johnsmith",
"title": "sauvegarde numéro 1",
"world_name": "lava"
},
我假设您对 unicode 有疑问,因此请使用 QTextStream,因为您可以为其设置编解码器。
试试这个代码:
QFile saveFile ("save.json");
if (!saveFile.open(QIODevice::WriteOnly|QIODevice::Text)) {
return false;
}
QJsonDocument saveDoc(m_jsonarray);
QTextStream stream(&saveFile);
stream.setCodec("UTF-8");
return stream << saveDoc.toJson();
当我想创建 json 格式 (Qt) 的存档时,我使用了法语口音 é :我用这个字符代替了 ÃÆ'©ro
原始(QString):"sauvegarde numréro 1" 已保存(在 json 中):"sauvegarde numéro 1"
ps: "sauvegarde numéro 1" 在法语中的意思是 "save number 1"
保存方法:
QFile saveFile ("save.json");
if (!saveFile.open(QIODevice::WriteOnly|QIODevice::Text)) {
return false;
}
QJsonDocument saveDoc(m_jsonarray);
return saveFile.write(saveDoc.toJson());
已保存 json:
{
"created": "2017/9/12-16h19m3s",
"id": "20170912161903",
"modified": "2017/9/12-16h19m3s",
"owner": "johnsmith",
"title": "sauvegarde numéro 1",
"world_name": "lava"
},
我假设您对 unicode 有疑问,因此请使用 QTextStream,因为您可以为其设置编解码器。 试试这个代码:
QFile saveFile ("save.json");
if (!saveFile.open(QIODevice::WriteOnly|QIODevice::Text)) {
return false;
}
QJsonDocument saveDoc(m_jsonarray);
QTextStream stream(&saveFile);
stream.setCodec("UTF-8");
return stream << saveDoc.toJson();