解决办法:
给工厂类设置emitUTF8=true。
swbuilder.settings_["emitUTF8"]=true;
- static bool serialize(const Json::Value &val, std::string &body) {
- std::stringstream ss;
- Json::StreamWriterBuilder swbuilder;
- //配置信息
- swbuilder.settings_["emitUTF8"]=true;
- std::unique_ptr<Json::StreamWriter> sw(swbuilder.newStreamWriter());
- int n=sw->write(val,&ss);
- if(n!=0)
- {
- LOG("sw->write(val,&ss) error!");
- return false;
- }
- body=ss.str();
- return true;
- }
复制代码
这就是在用中间类Value存储的时候,存的是中文,但是在write转化的时候,UTF8字符转化成为了
unicode的情势。
- \u6c34 对应的 Unicode 字符是 "水"。
- \u679c 对应的 Unicode 字符是 "果"。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |