【发布时间】:2017-06-02 07:25:30
【问题描述】:
我想从 jsoncpp 获取 json 字符串的字符编码类型:UTF-8、ANSI 还是 UNICODE?如何获取 json::value 的字符编码类型?提前感谢!
【问题讨论】:
标签: c++ unicode utf-8 ansi jsoncpp
我想从 jsoncpp 获取 json 字符串的字符编码类型:UTF-8、ANSI 还是 UNICODE?如何获取 json::value 的字符编码类型?提前感谢!
【问题讨论】:
标签: c++ unicode utf-8 ansi jsoncpp
任何字符串都只是一个字节序列,符合一些基本规则(空终止符、json 的禁止符号等)。没有什么神奇的方法可以确定使用哪种编码来形成字符串,因为编码只是表示字符串二进制数据的一种方式。因此,json 字符串编码应该由 json 发行者指定(可能在文档中),或者有关它的信息应该是 json 的一部分(如果由于某种原因不同的字符串具有不同的编码)。
【讨论】:
确定字符串的字符编码是相当复杂的。请参阅this SO answer 以选择正确的应用程序。
Apache Tika - the content analysis toolkit 可能是最先进的之一,根据以下引用:
Apache Tika™ 工具包从一千多种不同的文件类型(例如 PPT、XLS 和 PDF)中检测并提取元数据和文本。所有这些文件类型都可以通过一个界面进行解析,使 Tika 可用于搜索引擎索引、内容分析、翻译等。您可以在下载页面上找到最新版本。
可以使用这些库中的每一个来分析 JSON 字符串,从而生成(可能的)CharSet 可用于进一步处理。
【讨论】: