Я пытаюсь с помощью base64 декодировать байтовый массив, и все работает нормально, пока мой байтовый массив не содержит никаких символов, таких как '-'or' _ '.Но всякий раз, когда байтовый массив содержит '-', я получаю исключение как
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.Каковы эти коды.И как я могу декодировать любое значение независимо от этих символов в моем коде?
Вот мой фрагмент кода:
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();
}
}
}