Springmvc返回JSON格式到页面中文乱码问题
我是通过@ResponseBody注解的方式实现json格式传到页面的方法。首先查看源代码如下图,springmvc的默认编码是“ISO-8859-1”;
而我们通常编码都是使用UTF-8,
所以我们需要在springmvc的注解配置中处理json格式的时候应该修改一下默认的编码格式。
springmvc配置文件中代码如下:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
我们在使用基础的Servlet解决的时候是给HttpServletResponse类对象的追加一个application/json;charset=UTF-8。
在这里只配置一个application/json;charset=UTF-8是不行的。
必须同时配置
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
至于解释,大佬这样说的:
SpringMVC 是按照message-converters 里面配置的处理数据格式的,配置了2个消息转换器 Jackson 和 字符串,
这2个消息转换器都是Spring自带的。