为了账号安全,请及时绑定邮箱和手机立即绑定

springmvc 过滤请求编码

springmvc 过滤请求编码

繁星淼淼 2019-03-13 19:15:25
前后台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 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

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


查看完整回答
反对 回复 2019-04-23
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

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


查看完整回答
反对 回复 2019-04-23
?
慕码人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>


查看完整回答
反对 回复 2019-04-23
  • 3 回答
  • 0 关注
  • 477 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信