springmvc 过滤请求编码

前后台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的功能?请前辈指教。


繁星淼淼
浏览 478回答 3
3回答

开心每一天1111

就是不说是get请求还是post请求.&nbsp;试试改一下web容器的编码类型.

小唯快跑啊

默认的编码跟你项目的编码是一样的,你的项目编码方式应该是utf-8

慕码人2483693

在spring的配置文件中加入<!-- 解决JSON乱码问题&nbsp; --><bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">&nbsp; &nbsp; <property name="supportedMediaTypes">&nbsp; &nbsp; &nbsp; &nbsp; <list>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <value>text/plain;charset=UTF-8</value>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <value>text/html;charset=UTF-8</value>&nbsp; &nbsp; &nbsp; &nbsp; </list>&nbsp; &nbsp; </property></bean>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java