SpringMVC返回中文乱码问题解决

1、遇到的问题

在web.xml文件中对乱码问题进行了配置,配置代码如下:

<filter>
    <filter-name>encodingFilter</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>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

这是网上大多数的解决办法,看了狂神说的视频,期间也遇到了这个问题,弄了很多种解决办法,最后也是通过配置web.xml这段代码解决的。

本次项目也是按照狂神说的SSM教程搭建的,但返回的中文却是乱码的,就很解。

2、解决办法

遇到问题就得积极解决,抱怨是没得用的。

于是就找了很多种方法,下面把有效的两种办法记录一下,其他没用的就不贴了。

2.1 @RequestMapping中添加produces参数

第一种办法就是再每个接口里面写上produces="text/json;charset=utf-8"这段代码,但是会暴露出两个问题。

  • 一是接口很多,那也太麻烦了吧,还会导致代码不雅观。

  • 二是这只是text/json这一种情况,还可以会有text/plain;,text/html;等情况,那岂不是更乱…

2.2 在Spring-mvc.xml配置文件统一处理

第二种办法相比于第一种方法来说,会好很多,暂时还没有遇到其他的问题,不敢说是最好的解决办法。

这种办法是在<mvc:annotation-driven/>中添加如下内容:

<mvc:message-converters>
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
                <value>text/plain;charset=UTF-8</value>
                <value>text/html;charset=UTF-8</value>
                <value>text/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>
</mvc:message-converters>

虽然也需要列举所有存在的可能情况,但是它不需要在每个接口都写一遍,维护起来也很方便。

还有什么更好的解决办法请各位大佬在评论留言指出!如有不对的地方,欢迎批评指正!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值