用于android的php / java之间的数据编码/解码

我必须解码从PHP服务器接收到的base64编码数据。

服务器使用'base64_encode'来编码数据。

在我的android应用程序中,我使用android.utils.Base64类来进行解码。

原始encryption数据=“†+Ü”M(‡=ñö“

在PHP中Base64编码数据给出…… – “hisP3F1NBCgIAocQCD3x9g ==”
android中的Base64编码数据 – “4oCgKw / DnF1NBCgIAuKAoRAIPcOxw7Y =”

正如你所看到的,java编码的string比php编码的长。 请给出您宝贵的build议。 我需要找出他们的默认编码格式。

如何从两个获得相同的编码string。

java / android代码:

String encrypted = "†+ Ü]M(‡ =ñö"; byte[] encoded = Base64.encode(encrypted.getBytes(), Base64.DEFAULT); String str = new String(encoded); //str = "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y=" 

Solutions Collecting From Web of "用于android的php / java之间的数据编码/解码"

在Java中试试这个:这将给你的string的长版本(UTF-8)

 byte[] encoded = Base64.encode(encrypted.getBytes("UTF-8"), Base64.DEFAULT); String str = new String(encoded, "UTF-8"); 

更新:

在Java中试试这个:这会给你短string(CP1252)

 // This should give the same results as in PHP byte[] encoded = Base64.encode(encrypted.getBytes("CP1252"), Base64.DEFAULT); String str = new String(encoded, "CP1252"); 

或者试试这个PHP脚本:

file:test.php

 <?php echo base64_encode($_GET['str'])." Default UTF-8 version<br />"; echo base64_encode(iconv("UTF-8","CP1252",$_GET['str']))." CP1252 Version <br />"; ?> usage: http://[SOMEDOMAIN]/test.php?str=†+Ü]M(‡=ñö