Jsoncpp 库中的 UTF-8
UTF-8 in Jsoncpp Lib
我在项目中使用 jsoncpp 库时遇到问题。我尝试读取、编辑和写入本地 json 文件。我遇到的问题是,我找不到将 writing/reading 编码为 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);
如果我这样使用它,json文件将如下所示:
{ "Stra\u00dfe": "Ahornweg 5", "Name":"M�ller"}
希望有人能帮助我。感谢您的帮助。
对于将来想知道的人来说,阅读这个问题,我花了一些时间,因为我是编码的初学者,但这与您在 IDE 中使用的编码有关。确保它真的是 UTF-8!
我在项目中使用 jsoncpp 库时遇到问题。我尝试读取、编辑和写入本地 json 文件。我遇到的问题是,我找不到将 writing/reading 编码为 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);
如果我这样使用它,json文件将如下所示:
{ "Stra\u00dfe": "Ahornweg 5", "Name":"M�ller"}
希望有人能帮助我。感谢您的帮助。
对于将来想知道的人来说,阅读这个问题,我花了一些时间,因为我是编码的初学者,但这与您在 IDE 中使用的编码有关。确保它真的是 UTF-8!