这几天上线了一个项目,有些业务线在对接。由于大家使用的请求工具类不同,可能就会遇到各种各样的问题。其中有些使用RestTemplate的同事就发现返回的响应信息会乱码,那这个是什么原因呢?怎么处理呢?
原因
出现这种情况的原因是RestTemplate中的messageConverters列表中的StringHttpMessageConverter默认采用的是ISO-8859-1的编码格式,但我们现在一般的响应信息都是UTF-8的,字符编码不一致,这就导致了响应信息乱码的问题。
解决
知道原因就容易解决了。只要把字符集改成UTF-8就好了,代码如下:
restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
这样再次请求就不会出现乱码的情况了。
网友评论