当我用重音保存我的 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();