当前位置: 首页 > 后端技术 > Java

换行格式的Base64转换报错-Illegalbase64charactera-

时间:2023-04-02 00:09:53 Java

场景从一个远程请求拿到一个Base64字符串,直接用jdk的base64解码报错java代码Stringbase64Str="c2FtcGxlCWNocglzdGFydAllbmQJenZhbHVlCU5fd2luCWNudlR5cGUJb3JpZ2luCWZldGFsX2lu\n"+"dGVydmFsCWN5dG9iYW5kCWNudl9sZW4JZGlzZWFzZQlyZXBvcnQJdmFybGV2ZWwJYW5ub1Njb3Jl\n"+"CWFubm9DbGFzcwlhbm5vRXhwbGFpbgpSTlAwNDE0UUN3ZHhMMDFhCWNocjIxCTE1NDA5NDQzCTQ4\n"+"MDc1ODc3CTAuODQxCTEzMjYJRHVwCWZldGFsCVswLjEyOF8wLjQzNV0JMjFxMTEuMi1xMjIuMwkz\n"+"MjY2NjQzNAkyMeS4ieS9k+e7vOWQiOW+gQlZRVMJYW5lCTEuMAlQYXRob2dlbmljCeecgeeVpQo=";System.out.println(Base64.getDecoder().decode(base64Str));报错信息Exceptioninthread"main"java.lang.IllegalArgumentException:Illegalbase64characteraTheBase64storedintheactualfileisneatasshowninthefigure,andcopiedtotheideawithanewlinecharacter.,selectedaccordingtodifferentprotocols.ThedefaultBase64usesbasic,whichisbasic.Ifthereisanewlinesymbol,thereshouldbeanoptionthatcanbesettoMINE.Youcanfindthismethodbyscrollingdown,whichcansolvethebase64decodingwithnewlines.字符串结果=Base64.getMimeDecoder().decode(base64Str);查了资料,jdk7之前的base64编码是有换行符的,jdk8及以后的没有换行符。