кодирование / декодирование данных между php / java для android

Я должен декодировать кодированные base64 данные, полученные с php-сервера.

Для кодирования данных сервер использует «base64_encode».

В моем приложении Android я использую класс android.utils.Base64 для декодирования.

оригинальные зашифрованные данные = "† + Ü] M (‡ = ñö"

Данные кодирования Base64 в php дают …… – "hisP3F1NBCgIAocQCD3x9g =="
Базовые данные кодирования в android дают – «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=" 

Solutions Collecting From Web of "кодирование / декодирование данных между php / java для android"

Попробуйте это на Java: это даст вам длинную версию строки (UTF-8)

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

Обновлено:

Попробуйте это на 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"); 

Или попробуйте этот скрипт PHP:

файл: 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(‡=ñö