今天在做SpringBoot 的微服务时,在使用RestTemplate.PostForEntity请求时,RestControl接收参数时出现中文乱码问题,查看RestTemplate的源码发现,出现乱码的原因是RestTemplate的StringHttpMessageConverter的字符串处理时,使用的是ISO-8859-1编码,如果改成UTF-8就万事大吉了,所以我建议最简单粗暴的办法就是重写这个StringHttpMessageConverter

public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
改成

public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
完事。当然也可以用配置文件去注入UTF-8的编码,但本人觉得麻烦,又要写XML配置文件,太繁琐,所以本人就重写类解决问题,经本人测试,完全没有问题。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐