有效的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。
如何使Java喜欢可解码的PHP喜欢的base64编码字符串?
该demo
输入错误填充; 它应该以结尾==
而不是=
。
您可以使用更宽松的解码器,例如Guava's BaseEncoding
。
另外,由于填充在Base64中是可选的,因此您可以=
在使用解码之前先去除任何尾随字符java.util.Base64
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句