我的WebApi返回UTF16 JSON结果。 尝试使用JSON.NET反序列化导致错误:
解析值时遇到意外的字符:。路径'',第0行,第0位。
我查看了带设置的Deserialize方法,看起来没有指定编码的选项。 UTF8被硬编码到解析器中吗?
似乎JSON.NET无法反序列化UTF16,服务器必须使用UTF8进行响应,或者消费者需要将结果从16重新编码为8。 这两个只是分辨率吗?
答案 0 :(得分:0)
我使用System.Net.WebClient来调用服务。 一个谷歌搜索结果暗示需要解决被压缩的内容,我的服务响应确实在标题中显示gzip
通过切换到使用System.Net.WebRequest,问题得到解决,我无需关心压缩内容。
因此,原因可能与JSON.NET和编码无关,但由于使用System.Net.WebClient时压缩内容。