首页 > 解决方案 > Jsoncpp 库中的 UTF-8

问题描述

在项目中使用 jsoncpp 库时遇到问题。我尝试读取、编辑和编写本地 json 文件。我遇到的问题是,我找不到将写入/读取编码为 UTF-8 的方法。它总是使用 ASCII。这是一个示例 Json 文件:

{"Name": "Müller"}

我这样使用它:

std::ifstream ifs;
std::ofstream ofs;
Json::CharReaderBuilder builder;
Json::StreamWriterBuilder wbuilder;
const std::unique_ptr<Json::StreamWriter> writer(builder.newStreamWriter());
Json::String errs;

parseFromStream(builder, ifs, &root, &errs);

string name = root["Name"].asString();
//if i try to use this data in my wxWidgets Gui now, the Output would be sth like M�ller

root["Straße"] = "Ahornweg 5";

writer->write(root, &ofs);

如果我像这样使用它,jsonfile 将如下所示:

{ "Stra\u00dfe": "Ahornweg 5", "Name":"M�ller"}

希望可以有人帮帮我。感谢您的每一次帮助。

标签: c++jsonjsoncpp

解决方案


对于将来想知道的任何人,阅读这个问题,我花了一些时间,因为我是编码的初学者,但这与您在 IDE 中使用的编码有关。确保它真的是 UTF-8!


推荐阅读