SpringMVC4.* @ResponseBody 中文乱码无法解决

spring 升级到4.3 后  @ResponseBody 注解返回值中文出现乱码

查看了org.springframework.http.converter.StringHttpMessageConverter  DEFAULT_CHARSET 默认值变为了 iso-8859-1 之前是utf-8

但是DEFAULT_CHARSET 是final 类型的,不过作者也给出了改变输出值字符集的方法

解决方法 1:RequestMapping中加入produces属性指定 META值

@RequestMapping(value = "/test",produces={"text/html;charset=UTF-8"})

解决方法 2:配置文件中修改

annotation 驱动默认为:

<mvc:annotation-driven />

改为如下:

<mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8" />
            </bean>
        </mvc:message-converters>

</mvc:annotation-driven>

注:方法2 尝试了多次不起作用,后来发现犯了低级错误我的配置如下


<mvc:annotation-driven /> 驱动配置有两个,后面的会把前面的覆盖,Debug进去多次发现编码总是“ISO-8859-1”,后来意识到如果配置文件不起作用很可能就是被冲掉了

然后将后面的默认驱动配置去掉,然后前面的就起作用了,这可能是好多人遇到按方法二配置不起作用的原因吧!这里再次提醒自己!!!!






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值