最早的时候jsoncpp不是这样的。
Json::Value root;
root["name"] = "你的名字"; //Chinese, and use utf8
Json::FastWriter fwriter;
std::string retStr = fwriter.write(root);
std::cout << retStr;
之前的jsoncpp返回是这样的
{"name", "你的名字"}
现在成这样了
{"name", "u4f60u7684u540du5b57"}
不过经过我的单步调试发现,jsoncpp还有个配置的。就是可以设置就是emitUTF8这个配置。
std::string JsonToString(const Json::Value & root) { static Json::Value def = []() { Json::Value def; Json::StreamWriterBuilder::setDefaults(&def); def["emitUTF8"] = true; return def; }(); std::ostringstream stream; Json::StreamWriterBuilder stream_builder; stream_builder.settings_ = def;//Config emitUTF8 std::unique_ptr<Json::StreamWriter> writer(stream_builder.newStreamWriter()); writer->write(root, &stream); return stream.str(); }