Tôi có một chuỗi được mã hóa base64. Có vẻ như sau:Base64: Mảng byte đầu vào có byte kết thúc không chính xác tại 40
eyJibGExIjoiYmxhMSIsImJsYTIiOiJibGEyIn0=
Bất kỳ công cụ trực tuyến nào cũng có thể giải mã chuỗi này thành {"bla1":"bla1","bla2":"bla2"}
. Tuy nhiên, thực hiện Java của tôi thất bại:
import java.util.Base64;
System.out.println("payload = " + payload);
String json = new String(Base64.getDecoder().decode(payload));
Tôi nhận được lỗi sau:
payload = eyJibGExIjoiYmxhMSIsImJsYTIiOiJibGEyIn0=
java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 40
Điều gì là sai với mã của tôi?
[Không thể sao chép] (http://ideone.com/z07TWN), một char bổ sung ở cuối chuỗi sẽ làm tăng ngoại lệ chính xác đó ... –
Nhưng từ đâu bạn nhận được chuỗi được mã hóa? làm thế nào để bạn vượt qua nó để các biến tải trọng ?, bởi vì như bạn nói, nó hoạt động ... Tôi vừa thử nghiệm nó với Java 8 và không có vấn đề. –