java - springmvc 过滤请求编码

 手机用户2502853447_666 发布于 2022-10-26 20:16

前后台ajax请求交互,起初使用的请求data类型设置为/x-www-form-urlencoded,传输中文正常,
后改成了application/json(暂时没有设置charset)此时后台接受乱码,spring配置了CharacterEncodingFilter。

    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        UTF-8
    


    characterEncodingFilter
    *.do

问题:为何起初没有更换data类型时,也没有设置字符类型,不会乱码。
后面修改了传输数据类型后,中文却显示乱码,且在增加了charset=utf-8后乱码消失,在spring配置没有更改的前提下,只能理解成这个拦截器并没有设置json的功能?请前辈指教。

3 个回答
  • 在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>
    2022-10-27 01:31 回答
  • 默认的编码跟你项目的编码是一样的,你的项目编码方式应该是utf-8

    2022-10-27 01:31 回答
  • 就是不说是get请求还是post请求.
    试试改一下web容器的编码类型.

    2022-10-27 01:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有