SpringMVC使用Ajax请求返回中文乱码

使用@ResponseBody标记返回参数,当类型为String时,返回的中文可能会出现乱码问题;而当返回值是Map<String, Object>或者是其它类型时,并没有中文乱码的出现。

这可以说是spring mvc的一个bug,spring MVC有一系列HttpMessageConverter去处理用@ResponseBody注解的返回值,如返回list或其它则使用 MappingJacksonHttpMessageConverter,返回string,则使用 StringHttpMessageConverter,而这个convert使用的是字符集是iso-8859-1,而且是final的。所以在当返回json中有中文时会出现乱码。

解决办法:在RequestMapping中,加入produces={"text/html;charset=UTF-8;","application/json;"},完美解决

@RequestMapping(value = "***",produces={"text/html;charset=UTF-8;","application/json;"})  

 

 

猜你喜欢

转载自www.cnblogs.com/lisy0808/p/9438437.html
今日推荐