Ajax响应中文乱码 [Spring3MVC使用@ResponseBody处理Ajax请求]
Spring3.0 MVC @ResponseBody作用:把返回值直接写到HTTP response body里。
Spring3MVC在处理@ResponseBody这个annotation的时候,
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter使用了
org.springframework.http.converter.StringHttpMessageConverter进行处理,而
org.springframework.http.converter.StringHttpMessageConverter的默认编码是
ISO-8859-1,因此会中文乱码。
解决办法:
(一) 在spring mvc的配置文件中手工配置bean:
<bean > <property name="messageConverters"> <list> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name = "supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> <bean />
@ResponseBody@RequestMapping(value = "xxx",method = RequestMethod.GET)public String method(HttpServletRequest request, HttpServletResponse response){ ..... response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(你的json.toString()); return null;}