RestTemplate乱码的问题 @Arthur

本文探讨了使用Spring的RestTemplate发送XML时遇到的乱码问题,并深入分析了解决方案。文章指出,即使设置了正确的字符集,由于RestTemplate内部使用的默认字符集为ISO-8859-1,仍可能导致乱码。最终通过修改StringHttpMessageConverter的字符集为UTF-8解决了问题。

      RestTemplate的Http请求机制一直在用,但从没有深究过,今天使用它的postForEntity方法发送xml片段时(动态创建栅格图层),出现了乱码问题。

       和安娜讨论,发现以下情况:

      1、通过HttpHeaders的setContentType(“applicaiton/json;charset=UTF-8”)方法,约定字符。它是按照Http协议的要求,向服务器声明发送的json字符集的。

       2、在这样的设置情况下,用RestTemplate时可能还会发生乱码,其原因是RestTemplate有一系列HTTP消息转换器(HttpMessageConverter)。这个消息转换器集合中第1个消息转换器StringHttpMessageConverter,它默认字符集是“ISO-8859-1”。所以当我们发送的字符流是UTF-8时,就会出乱码。

 所以处理办法是通过restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)),改变一下StringHttpMessageConverter的字符集。

 网上参考:http://blog.youkuaiyun.com/luccs624061082/article/details/40980623

 

转载于:https://my.oschina.net/u/3756527/blog/1602984

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值