spring mvc 3 @ResponseBody 返回json字符串乱码
大家都知道是因为StringHttpMessageConverter 这个类默认的字符格式是ISO-8859-1
在网上搜索了一大堆解决方案,因为版本过低,3.0.5的spring 无奈这种方法用不了
@RequestMapping()注解内加上produces = “application/json;charset=utf-8”
1 <mvc:annotation-driven> 2 <!-- 消息转换器 --> 3 <mvc:message-converters register-defaults="true"> 4 <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 5 <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/> 6 </bean> 7 </mvc:message-converters> 8 </mvc:annotation-driven>
上面的方法也试过了也不行,spring版本太低
废话不说,直接简单粗暴上才艺,因为处理字符串和对象的不是一个类,所以我直接把返回String类型改成了对象类型,最后问题解决
public String public Object
jsp加上
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF8"%>
编辑web.xml
<!--springMVC start--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/mvc/*</url-pattern> </filter-mapping>
有什么问题欢迎留言,bye