JSON's official specification说:
JSON文本应以UTF-8,UTF-16或UTF-32编码。默认编码为UTF-8,并且...
因此,基本上,JSON消息可以采用这三种编码中的任何一种。但是...我怎么猜到我收到的是哪一个?
该消息可能来自多个来源,例如队列,浏览器,数据库,文件系统等。
它还说忽略字节顺序掩码(BOM):
...解析JSON文本的实现可以忽略字节顺序标记的存在,而不是将其视为错误。
我记得XML文档有一个指定编码的“序言”,但是找不到与JSON消息类似的东西。
有什么想法吗?
答案 0 :(得分:1)
根据我的理解,此JSON数据的生产者/发送者必须指定使用的编码类型,而不是接收者试图猜测的编码类型。通常,此信息是生产者/发送者提供给接收者的API文档的一部分。
答案 1 :(得分:1)
rsp和CouchDeveloper用他们的答案很好地涵盖了这一点(我对此不以为然)。
两个答案都将检查字节模式以确定已使用的编码方式。抱歉,这不能直接回答您的问题,但可以帮助您编写自己的实现。