【发布时间】:2019-03-08 14:31:38
【问题描述】:
我正在尝试对字节数组进行 base64 解码,只要我的字节数组不包含任何字符,如“-”或“_”,一切都运行良好。但是每当字节数组包含'-'时,我都会得到一个异常
java.lang.IllegalArgumentException: Illegal base64 character 2d
at java.util.Base64$Decoder.decode0(Base64.java:714)
at java.util.Base64$Decoder.decode(Base64.java:526)
当字节数组包含'_'时,异常是
java.lang.IllegalArgumentException: Illegal base64 character 5f
at java.util.Base64$Decoder.decode0(Base64.java:714)
at java.util.Base64$Decoder.decode(Base64.java:526)
即字符 2d 到 5f 之后的代码差异。 这些代码是什么。无论我的代码中的这些字符如何,我如何解码任何值?
这是我的代码 sn-p:
import java.util.Properties;
import java.util.Base64;
import java.io.*;
...
public class BasicSample {
public static void main(String[] args) {
byte[] encoded = res.getBytes("s_id");
System.out.printf("\nInside Byte %s\n",new String(encoded) );
try {
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.printf("\nDecoded Byte %s\n",new String(decoded, "UTF-8") );
} catch(Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
标签: java encoding base64 decode