我使用以下代码测试jsoncpp
#include <json/json.h>
#include <iostream>
using namespace std;
int main(int argc, char ** argv)
{
Json::Value root;
root["test"] = "中文测试123";
Json::StyledWriter styledWriter;
cout << styledWriter.write(root) << endl;
return 0;
}
输出就像这样
{
"test" : "中文测试123"
}
我想知道jsoncpp是否可以将这些unicode转义为\\uXXXX
?
我已尝试过FastWriter和StyledWriter,其中没有它们正常工作
答案 0 :(得分:0)
{
"test" : "中文测试123"
}
于 2017 年 12 月 21 日发布
相关提交:Serialize UTF-8 string with Unicode escapes (#687)
{
"test" : "\u4e2d\u6587\u6d4b\u8bd5123"
}
于 2019 年 11 月 14 日发布
相关提交:添加了emitUTF8 设置。 (#1045)
#include <json/json.h>
#include <iostream>
void print_json(const Json::Value& value, bool emitUTF8) {
Json::StreamWriterBuilder builder;
builder.settings_["emitUTF8"] = emitUTF8;
std::unique_ptr<Json::StreamWriter> writer(builder.newStreamWriter());
writer->write(value, &std::cout);
}
int main() {
Json::Value root;
root["test"] = "中文测试123";
print_json(root, true);
std::cout << std::endl;
print_json(root, false);
}
/*
output:
{
"test" : "中文测试123"
}
{
"test" : "\u4e2d\u6587\u6d4b\u8bd5123"
}
*/