RestTemplate请求结果中文乱码解决方法

RestTemplate请求结果中文乱码解决方法_第1张图片

如果请求的结果返回的是字符串,那么就会用上图的类来进行转换(处理)

因为 StringHttpMessageConverter 这个类默认编码不是UTF-8所以导致解析的结果中文乱码

RestTemplate请求结果中文乱码解决方法_第2张图片

如果想改成默认为UTF-8  这里提供一个方法.如果有哪位大神有更好的处理方式,请评论下留言。这里表示感谢

本人提供的方法是在把RestTemplate注册成spring bean进行的改造,如下图

RestTemplate请求结果中文乱码解决方法_第3张图片

经过测试验证。乱码已经修改,为了方便使用者复制:

List> httpMessageConverters = restTemplate.getMessageConverters();
httpMessageConverters.stream().forEach(httpMessageConverter -> {
	if(httpMessageConverter instanceof StringHttpMessageConverter){
		StringHttpMessageConverter messageConverter = (StringHttpMessageConverter) httpMessageConverter;
		messageConverter.setDefaultCharset(Charset.forName("UTF-8"));
	}
});

 

你可能感兴趣的:(开发中需要的)