问题描述
在java中解码base64时,突然冒出这个异常,一时不知所措,因为这个base64也是通过java生成的,所以刚开始也不知到问题出在哪,根据异常信息中提到的 20 是不合法的字符便去看了一下,发现问题不是 20 ,而是base64中含有多余的空格,而base64本身是没有空格的。
解决方法
既然这个异常是因为base64中有多余的空格,那么把空格去掉就可以了。
在java中,可以直接使用 String.replaceAll 方法去掉base64中多余的空格。
方法使用:
String base64 = "你的base64字符串";
//去掉字符串中所有空格
String str = base64.replaceAll(" ","");
在使用长度较大的不含空的字符串时,也可以使用这个方法避免不必要的错误。