首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON.NET反序列化UTF16

JSON.NET反序列化UTF16
EN

Stack Overflow用户
提问于 2015-09-23 03:34:42
回答 2查看 1.1K关注 0票数 0

我的WebApi返回UTF16 JSON结果。试图使用JSON.NET反序列化此操作会导致错误:

解析值时遇到的意外字符:。路径'',第0行,位置0。

我查看了带有设置的反序列化方法,看起来没有指定编码的选项。UTF8被硬编码到解析器中?

似乎JSON.NET不能反序列化UTF16,要么服务器必须用UTF8响应,要么使用者需要将结果从16重新编码到8。这2是分辨率吗?

EN

回答 2

Stack Overflow用户

发布于 2015-09-23 06:54:58

我使用System.Net.WebClient来调用服务。1 googling结果提示需要处理正在压缩的内容,并且我的服务响应在标题中显示了gzip。

通过切换到使用System.Net.WebRequest,问题解决了,我不需要关注压缩的内容。

因此,原因可能与JSON.NET或编码无关,而是由于使用System.Net.WebClient时压缩的内容。

票数 0
EN

Stack Overflow用户

发布于 2022-01-23 14:50:14

我也遇到了类似的问题,但原因是编码。我的JSON文件在UTF-16le (Unicode)中。因此,在读取数据时,我们只需要提供Unicode编码。

代码语言:javascript
复制
var jsonString = System.IO.File.ReadAllText("c://filepath", Encoding.Unicode);

var data = JsonConvert.DeserializeObject<YourModel>(jsonString);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32730520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档