前后台ajax请求交互,起初使用的请求data类型设置为/x-www-form-urlencoded,传输中文正常,后改成了application/json(暂时没有设置charset)此时后台接受乱码,spring配置了CharacterEncodingFilter。<filter> <filter-name>characterEncodingFilter</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></filter><filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>*.do</url-pattern>问题:为何起初没有更换data类型时,也没有设置字符类型,不会乱码。后面修改了传输数据类型后,中文却显示乱码,且在增加了charset=utf-8后乱码消失,在spring配置没有更改的前提下,只能理解成这个拦截器并没有设置json的功能?请前辈指教。
3 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
在spring的配置文件中加入
<!-- 解决JSON乱码问题 -->
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
添加回答
举报
0/150
提交
取消