Boost ptree解析中文字符
flyfish 2015-12-30
JSON格式
头文件
#include "boost/property_tree/ptree.hpp"
#include "boost/property_tree/json_parser.hpp"
代码段
std::string c1="who are you";
std::string c2="I am pumpkin 中文";
ptree pt_w;
pt_w.put("1",c1);
pt_w.put("2",c2);
std::ostringstream os;
write_json(os,pt_w);
std::string a=os.str();
ptree pt_r;
std::istringstream is(a);
read_json(is,pt_r);
std::string b=pt_r.get<std::string>("2");
中文字符会变成 \u的字符
stackoverflow的解决方案
以1.56.0版本为例
目录boost_1_56_0\boost\property_tree\detail
更改json_parser_write.hpp文件
按照下图 增加一句
|| (*b >= -0x80 && *b<0 ))