springboot接口GBK中文乱码解决不同接口使用不同字符集

问题:

发布一个新的接口,接口的字符集是GBK,发布生产后接收的中文一直乱码。其它接口字符集是UTF-8。需要应用支持多字符集。

原因:

springboot处理http requests请求统一默认字符集为UTF-8。

 解决思路:

 继续阅读源码CharacterEncodingFilter过滤器的doFilterInternal方法可以发现,isForceRequestEncoding()默认为true,所以如果没有设置,始终都会强制将requests请求的字符集设置为UTF-8。所以需要我们增加配置将强制设置字符集关闭 spring.http.encoding.force = false  增加配置后如果请求方没有设置字符集就会默认使用UTF-8,如果请求方设置了字符集就使用请求方的字符集,这样就可以实现不同接口使用不同的字符集的需求。

 最后:

在排查问题过程中为了更好了解乱码,下面这张图很有用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wyl90116

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值