Base64编码包含换行符问题
在进行fdfs存储的时候,将前端传过来的Base64进行解码时出现报错
1 | java.lang.IllegalArgumentException: Illegal base64 character a |
经过排查发现,这次前端将ocr给的Base64里面有换行符,导致解码出现错误。
Base64编码的包很多,稍有不注意就会得不到期望的结果引起bug,这是由于根据RFC822规定,Base64Encoder编码每76个字符,还需要加上一个回车换行,部分Base64编码的java库还按照这个标准实行。
如果不想换行,可以使用Apache的common-codec.jar.
这边我们是从其他处的到的编码,所以我们需要去除回车符,然后再进行解码就可以。
1 | imgBase64 = imgBase64.replaceAll("[\\s*\t\n\r↵]", ""); |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 337455685@qq.com
文章标题:Base64编码包含换行符问题
文章字数:226
本文作者:wjy
发布时间:2020-02-21, 11:27:23
最后更新:2020-02-21, 15:20:37
原始链接:https://chengnj.github.io/%E7%AC%94%E8%AE%B0/2020/base64q1/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。