非法参数异常:在使用Base64.getDecode()解码字符串值时,遇到非法的base64字符3a。

5

我正在解码的字符串值是"ed:1234",但是它抛出了一个IllegalArgumentException错误。如果有人知道为什么会出现这个错误,将不胜感激。

代码:

String authInfo = "ed:1234";
byte[] bytes = Base64.getDecoder().decode(authInfo);

错误:

java.lang.IllegalArgumentException: Illegal base64 character 3a
1个回答

9
问题在于 : (ascii 十进制58或十六进制3a) 只在几个Base64编码方案中有效,您需要使用 Base64.getMimeDecoder()。例如,
byte[] bytes = Base64.getMimeDecoder().decode(authInfo);
System.out.println(Arrays.toString(bytes));

输出如下(无其他更改)

[121, -35, 118, -33]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接