【Json-RPC框架】:Json序列化后,不能显式中文?增加emitUTF8配置

解决办法:

给工厂类设置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 字符是 "果"。