热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于java:换行格式的Base64转换报错-Illegal-base64-character-a

场景从一个近程申请拿到一个Base64字符串,间接用jdk的base64解码报错java代码{代码}报错信息{代码}理论的文件里寄存的Base64如图,整整齐齐,复制到idea外面带有换行符解决办法先来看下Base64的类解释,外面说jdk的base64有3种实现,依据不同协定选取。默认的Base64用的是basic,也就是根本的。如果是有换行
场景

从一个近程申请拿到一个Base64字符串,间接用jdk的base64解码报错

java代码

String base64Str = "c2FtcGxlCWNocglzdGFydAllbmQJenZhbHVlCU5fd2luCWNudlR5cGUJb3JpZ2luCWZldGFsX2lu\n" +
                "dGVydmFsCWN5dG9iYW5kCWNudl9sZW4JZGlzZWFzZQlyZXBvcnQJdmFybGV2ZWwJYW5ub1Njb3Jl\n" +
                "CWFubm9DbGFzcwlhbm5vRXhwbGFpbgpSTlAwNDE0UUN3ZHhMMDFhCWNocjIxCTE1NDA5NDQzCTQ4\n" +
                "MDc1ODc3CTAuODQxCTEzMjYJRHVwCWZldGFsCVswLjEyOF8wLjQzNV0JMjFxMTEuMi1xMjIuMwkz\n" +
                "MjY2NjQzNAkyMeS4ieS9k+e7vOWQiOW+gQlZRVMJYW5lCTEuMAlQYXRob2dlbmljCeecgeeVpQo=";

System.out.println(Base64.getDecoder().decode(base64Str));

报错信息

Exception in thread "main" java.lang.IllegalArgumentException: Illegal base64 character a

理论的文件里寄存的Base64如图,整整齐齐,复制到idea外面带有换行符

解决办法

先来看下Base64的类解释,外面说jdk的base64有3种实现,依据不同协定选取。

默认的Base64用的是basic,也就是根本的。如果是有换行符号的,应该有个选项能够设置成MINE的。

往下翻一下就能找到这个办法,能够解决带有换行的base64解码。

String result = Base64.getMimeDecoder().decode(base64Str);

找了下材料,jdk7以前的base64编码都是那种有换行的,jdk8以及当前的就不换行了。


推荐阅读
author-avatar
黄镇郁皓伟嘉惟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有