我必须解码从PHP服务器接收的base64编码数据。
服务器使用“base64_encode”对数据进行编码。
在我的Android应用程序中,我使用android.utils.Base64类进行解码。
原始加密数据=“†+Ü]M(‡=ñö”
PHP中的Base64编码数据给出-“hisP 3F 1 NBCgIAocQCD 3x 9 g ==”
安卓系统中的Base64编码数据给出-“4 oCgKw/DnF 1 NBCgIAuKAoRAIPcOxw 7 Y =”
正如您所看到的,Java编码的字符串比PHP编码的字符串长,我需要找出它们的默认编码格式。
如何从两者中获取相同的编码字符串?
Java/安卓代码:
String encrypted = "†+Ü]M(‡=ñö";
byte[] encoded = Base64.encode(encrypted.getBytes(), Base64.DEFAULT);
String str = new String(encoded); //str = "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y="
3条答案
按热度按时间nqwrtyyt1#
在Java中试试这个:这将为您提供字符串的长版本(UTF-8)
在Java中试试这个:这将为您提供字符串(CP1252)的简短版本。
或者试试这个PHP脚本:
文件名:test.php
ezykj2lf2#
对我来说CP 1252不工作,因为它失败的非字母数字符号。我发现最好的字符集是ISO-8859-1,使用如下:
4si2a6ki3#
我用了这个: