HttpStatusCodeException.getResponseBodyAsString 乱码

场景:

项目a进行了spring boot版本升级, 使用了2.7.15

项目b是做接口转发 (没升级spring boot版本, 用的是2.1.5)

调用过程: 请求方>>项目b>>项目a

现象:

postman直接调用a中的接口, 接口报错, msg里的错误信息是正常显示

当调用接口报错时, msg里的错误信息是乱码

原因:

springboot框架升级后, http的响应头Content-Type的值规范,  由原来的"application/json;charset=UTF-8", 变成了"application/json"

因为没有指定编码格式为utf-8, 项目b在处理接口400错误时,

根据源码可知 


默认使用的是"iso8859-1", 因此出现了乱码

解决方案:

1.框架统一升级

2.在项目a中对, 对response head手动设置"Content-Type"的值为"application/json;charset=UTF-8"

如: 
ResponseEntity.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8.toString()).body(xxxxResult);

或者
修改配置文件, 使用自定义过滤器等

SpringBoot设置编码UTF-8的两种方法 - Python技术站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值