Devo decodificare un dato codificato Base64 ricevuto da un server php.codifica/decodifica dei dati tra php/java per android
Il server utilizza 'base64_encode' per codificare i dati.
Nella mia app Android, utilizzo la classe android.utils.Base64 per eseguire la decodifica.
dati originali cifrati = "† + U] M (‡ = NO" dati
codifica Base64 in php dà ...... - "hisP3F1NBCgIAocQCD3x9g =="
dati di codifica Base64 in Android dà - "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y ="
Come si può vedere, la stringa java codificata è più lungo del php codificato. si prega di dare i vostri preziosi suggerimenti. ho bisogno di scoprire i loro formati di codifica di default.
Come ottenere il stessa stringa codificata da entrambi.?
java/code Android:
String encrypted = "†+Ü]M(‡=ñö";
byte[] encoded = Base64.encode(encrypted.getBytes(), Base64.DEFAULT);
String str = new String(encoded); //str = "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y="
encrypted.getBytes() dipende dalla codifica locale. molto probabilmente utf-8 nel tuo caso. in PHP, dipenderà dal server, probabilmente una codifica a 8 bit di dimensione fissa. i byte che dai al codificatore base64 sono diversi. – njzk2
@ userSeven7s: l'output da PHP è basato su CP1252, l'uscita da JAVA è basata su UTF-8, aggiornerò la mia risposta sotto – Shehabix