Ich muss eine Base64 codierte Daten von einem PHP-Server empfangen dekodieren.Codierung/Decodierung von Daten zwischen PHP/Java für Android
Der Server verwendet 'base64_encode', um die Daten zu codieren.
In meiner Android-App verwende ich android.utils.Base64-Klasse, um die Decodierung zu tun.
ursprüngliche verschlüsselte Daten = "† + U] M (‡ = Nein"
Base64-Kodierung von Daten in PHP gibt ...... - "hisP3F1NBCgIAocQCD3x9g =="
Base64-Kodierung von Daten in Android gibt - „4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y =“
Wie Sie sehen können, die Java-codierte Zeichenfolge ist länger als die pHP codiert. Bitte geben Sie Ihre wertvollen Anregungen. ich brauche die Standardcodierungsformate erfahren.
Wie bekommen die gleiche codierte Zeichenfolge von beiden.?
java/android-Code:
String encrypted = "†+Ü]M(‡=ñö";
byte[] encoded = Base64.encode(encrypted.getBytes(), Base64.DEFAULT);
String str = new String(encoded); //str = "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y="
encrypted.getBytes() ist abhängig von der locale-Codierung. höchstwahrscheinlich utf-8 in Ihrem Fall. In PHP wird es vom Server abhängen, wahrscheinlich eine 8-Bit-Codierung mit fester Größe. Die Bytes, die Sie Ihrem Base64-Encoder geben, sind unterschiedlich. – njzk2
@ userSeven7s: die Ausgabe von der PHP basiert auf CP1252, die Ausgabe von JAVA basiert auf UTF-8, ich werde meine Antwort unter – Shehabix