base64编码的字符串:可以用PHP解码但不能用Java解码?

有效的 PHP 代码:

$str = "528ABf4cCU5g7zKzLC2t8oze4mstEcWKErar6FbTK2Xo97bu17S8cDmEg5HlbgcLtfvKCVvJ4FnRV3R1iX1TWZIyM7T2352wsb6LUyqFXA03Fz9G6dQmhRrkWpOXAoHeU/H63LKKzcJDhNb3YI2hfsU20BcT0qkk74XKneC7D91OKY=";
echo strlen(base64_decode($str));

输出 130。

不起作用的 Java 代码:

String demo = "528ABf4cCU5g7zKzLC2t8oze4mstEcWKErar6FbTK2Xo97bu17S8cDmEg5HlbgcLtfvKCVvJ4FnRV3R1iX1TWZIyM7T2352wsb6LUyqFXA03Fz9G6dQmhRrkWpOXAoHeU/H63LKKzcJDhNb3YI2hfsU20BcT0qkk74XKneC7D91OKY=";
System.out.println(java.util.Base64.getDecoder().decode(demo).length);

这抛出:

“输入字节数组有错误的 4 字节结束单元”java.lang.IllegalArgumentException。

如何使 PHP 喜欢的 base64 编码字符串可被 Java 解码?

回答

demo输入被错误地填充;它应该以==而不是=.

您可以使用更宽松的解码器,例如 Guava 的BaseEncoding.

或者,由于 Base64 中的填充是可选的,因此您可以=在使用java.util.Base64.


以上是base64编码的字符串:可以用PHP解码但不能用Java解码?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>