【发布时间】:2016-02-09 13:04:28
【问题描述】:
我有一个 base64 编码的字符串。它看起来像这样:
eyJibGExIjoiYmxhMSIsImJsYTIiOiJibGEyIn0=
任何在线工具都可以将其解码为正确的字符串{"bla1":"bla1","bla2":"bla2"}。但是,我的 Java 实现失败了:
import java.util.Base64;
System.out.println("payload = " + payload);
String json = new String(Base64.getDecoder().decode(payload));
我收到以下错误:
payload = eyJibGExIjoiYmxhMSIsImJsYTIiOiJibGEyIn0=
java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 40
我的代码有什么问题?
【问题讨论】:
-
Can't reproduce,字符串末尾的额外字符会引发确切的异常...
-
但是你从哪里得到编码字符串?你如何将它传递给有效负载变量?因为正如你所说,它可以工作......我刚刚用 Java 8 测试过它,没有问题。
标签: java base64 illegalargumentexception