我使用asp.net core开发的web api,通过postman测试是可以获取到数据,由java平台的spring RestTemplate调用,发现整个response乱码,而且很奇怪的是显示返回的数据使用了utf-16编码,但是在请求头中设置的是application/json;charset=utf-8。java 调用截图
求解,而且同样使用asp.net 开发的就不存在这个问题。
application/json;charset=utf-8
对应的是哪个请求头?
通过观察控制台,发现请求strating 是utf-8 finished 时变成了utf-16了,我猜测postman 是根据响应头使用utf-16来解码,而java写的程序固定使用utf-8来解码,所以乱码了,通过强制手段更改response使用utf-8之后,api出现了406.是什么机制导致服务端选择utf-16来编码了呢。为什么不是utf-8
@我爱CC: 你在代码中是否使用了 Unicode ? 在 .NET 中 Unicode 对应的编码就是 UTF-16
原来是json序列化问题