【发布时间】:2020-09-14 18:04:03
【问题描述】:
我在项目中使用 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"}
希望有人可以帮助我。感谢您的每一次帮助。
【问题讨论】:
-
Stra\u00dfe正是那个can help me与什么? -
是的,它的值相同。但编码不同。我在 Jsonfile 中想要的是 Straße 而不是 Stra\u00fde。因为我无法使用 root [“Straße”] 再次访问它。我需要用 root["Stra\u00dfe] 打开它,这不适用于这个确切的项目
-
您可能需要使用不同的库。我在 jsoncpp 文档中没有看到任何关于编码的内容。我阅读了 rapidjson 的文档,其中包含有关编码的信息,但即便如此我也无法判断它是否符合您的要求。