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

Jes*_*sio 2 java base64 spring decode spring-boot

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

代码:

String authInfo = "ed:1234";
byte[] bytes = Base64.getDecoder().decode(authInfo);
Run Code Online (Sandbox Code Playgroud)

错误:

java.lang.IllegalArgumentException: Illegal base64 character 3a
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 6

问题是:ascii十进制 58 或十六进制 3a)仅在您想要的(多种)Base64 编码方案之一中有效Base64.getMimeDecoder()。喜欢,

byte[] bytes = Base64.getMimeDecoder().decode(authInfo);
System.out.println(Arrays.toString(bytes));
Run Code Online (Sandbox Code Playgroud)

哪些输出(没有其他变化)

[121, -35, 118, -33]
Run Code Online (Sandbox Code Playgroud)