Mam do odkodowania danych zakodowanych base64 otrzymanych od serwera php.kodowanie/dekodowanie danych między php/java dla Androida
Serwer używa "base64_encode" do kodowania danych.
W mojej aplikacji na Androida używam klasy android.utils.Base64 do dekodowania.
oryginalny zaszyfrowane dane = "† + U] M (‡ = Nie" dane
kodowania base64 w php daje ...... - "hisP3F1NBCgIAocQCD3x9g =="
kodowania danych base64 w Android daje - „4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y =”
Jak widać, Java zakodowany ciąg jest dłuższa niż php zakodowany. Proszę podać swoje cenne sugestie. muszę znaleźć swoje domyślne formaty kodowania.
Jak uzyskać ten sam zakodowany ciąg z obu.?
java/code android:
String encrypted = "†+Ü]M(‡=ñö";
byte[] encoded = Base64.encode(encrypted.getBytes(), Base64.DEFAULT);
String str = new String(encoded); //str = "4oCgKw/DnF1NBCgIAuKAoRAIPcOxw7Y="
encrypted.getBytes() zależy od kodowania locale. najprawdopodobniej utf-8 w twoim przypadku. w php będzie zależeć od serwera, prawdopodobnie o 8-bitowym kodowaniu o stałym rozmiarze. bajty, które podasz twojemu koderowi base64, są różne. – njzk2
@ userSeven7s: dane wyjściowe z PHP są oparte na CP1252, dane wyjściowe z JAVA oparte są na UTF-8, zaktualizuję moją odpowiedź poniżej – Shehabix