Unicode中的boost :: property_tree write_json

时间:2014-11-29 15:10:15

标签: c++ boost unicode

根据以下代码,我很难从Boost :: property_tree获取Unicode输出:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>

boost::property_tree::ptree pt;
pt.put("name1", "Žluťoučký");
boost::property_tree::write_json(std::cerr, pt, false);

返回:

{"name1":"\u00C5\u00BDlu\u00C5\u00A5ou\u00C4\u008Dk\u00C3\u00BD"}

我希望看到正确编码,因为我需要进一步传递:

{"name1":"Žluťoučký"}

任何帮助或建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

  

我希望看到正确编码,因为我需要进一步传递

您对“正确编码”的定义是任意的。如果您在另一端使用任何兼容的JSON解析器,您将获得预期的结果。你不应该关心传输编码,除非你要闯入 JSON的抽象层并解释流中的字节,这是一个实现细节。

可能是一个标志,但我不会指望它,因为事实上,JSON首先只是Property Tree的“任意”后端实现。