String.getBytes()未指定编码方式,导致有的机器可行有的不可行

最近在对接一个接口的时候,发现同样的数据,在一台机器上能跑通,另外三台就跑不通,通过排查,发现原因是:

调用String.getBytes()的时候为指定编码方式,采用了默认编码

return new String(Base64.encode(String.getBytes()));

正确的:

return new String(Base64.encode(String.getBytes(Charset.forName("UTF-8"))));

错误情况下得到的base64(最后面应该是==)

PFJFU1BPTlNFPjxGUFFRTFNIPjE1Mjk5MTg1ODI4NDA8L0ZQUVFMU0g+PEZQX0RNPjE1MjAwMDE4NjM1NzwvRlBfRE0+PEZQX0hNPjMwNjA0ODY1PC9GUF9ITT48SllNPjE0MDcwMjk1MzcxMzY2ODIxMDkyPC9KWU0+PEtQUlE+MjAxODA2MjUxNzI1MDE8L0tQUlE+PFBERl9VUkw+PCFbQ0RBVEFbaHR0cDovL2Rldi5mYXBpYW8uY29tOjE5MDgwL2R6ZnAtd3gvcGRmL2Rvd25sb2FkP3JlcXVlc3Q9ZTV1aGY4V0VUSU9NZ2FhMmNDVU10blFINjFmV0FPY2JCLkRQOFRkaUl2d1VRRWtna2ZzQ2tWV2xvdXFrUUpIdGlzVWJXd0tnNmxvXyU1RWZpZEdoQkhGXV0+PC9QREZfVVJMPjxTUF9VUkw+PCFbQ0RBVEFbaHR0cDovL3Rlc3R3eC5mYXBpYW8uY29tL2ZwdC13ZWNoYXQvd3hhZGRjYXJkLmRvP2NvZGU9U1FsVXhycE1LSmQlMkJwMUlLY0hsT2phMEFmUVVMZHhxMm0xem1ZclQzZW92Q0NtazVGQzFXVDJHYkE5c3RkMEtuajNHTmlsazA2R0JJJTBBZ01TZHpvNE5CQSUzRCUzRF1dPjwvU1BfVVJMPjwvUkVTUE9OU0U+
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值