Ron*_*nie 12 php java base64 android
我必须解码从php服务器接收的base64编码数据.
服务器使用'base64_encode'对数据进行编码.
在我的Android应用程序中,我使用android.utils.Base64类来进行解码.
原始加密数据="†+Ü] M(‡=ñö"
php中的Base64编码数据给出...... - "hisP3F1NBCgIAocQCD3x9g =="
android中的Base64编码数据给出 - "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y ="
如您所见,java编码的字符串比PHP编码的字符串长.请提出宝贵的建议.我需要找出他们的默认编码格式.
如何从两者中获取相同的编码字符串.?
java/android代码:
String encrypted = "†+Ü]M(‡=ñö";
byte[] encoded = Base64.encode(encrypted.getBytes(), Base64.DEFAULT);
String str = new String(encoded); //str = "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y="
Run Code Online (Sandbox Code Playgroud)
She*_*bic 13
在Java中试试这个:这将为您提供字符串的长版本(UTF-8)
byte[] encoded = Base64.encode(encrypted.getBytes("UTF-8"), Base64.DEFAULT);
String str = new String(encoded, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
更新:
在Java中尝试这个:这将为您提供字符串的简短版本(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");
Run Code Online (Sandbox Code Playgroud)
或者尝试这个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(‡=ñö
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12370 次 |
| 最近记录: |