原创作品。转载请注明出处https://blog.youkuaiyun.com/kk123k/article/details/80807228
SpringMVC用ajax向服务器端获取数据时返回的json到客户端时中文会出现乱码显示“???”,
其中,我的controller如下
@ResponseBody
@RequestMapping(value = "getCourse")
通过查阅源码发现Spring的@ResponseBody 的实现类默认的编码是 iso-8859-1,而我们项目一般用的是utf-8,所以传中文就会出现乱码,解决方案有两种
方法一:
在注解后加上 produces = "application/json; charset=utf-8" 如下:
@ResponseBody
@RequestMapping(value = "getCourse", produces = "application/json; charset=utf-8")
方法二:
在SpringMVC的配置文件中的<mvc:annotation-driven>中加入<mvc:message-converters>的配置
<mvc:annotation-driven>
<!-- 解决中文乱码 -->
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list><value>text/plain;charset=utf-8</value></list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>