2013-03-29 4 views
2

큰 문제가 있습니다. base64_decode ($ string)을 수행하면 동일한 결과가 없습니다. PHP 또는 Base64.decode 할 경우 (문자열); 안드로이드에.다른 결과가있는 Android PHP Base64 디코드

예 :이 문자열 : WWhiZWWSZpNlaGSTnpljZQ의 == PHP에서

는, 결과는 Yhbee'f "EHD"Z ™의 가전이다. 안드로이드에서

는, 결과는

내가 인코딩 문제가 있다고 생각,하지만 난 내 PHP 서버의 출력이 ISO-8859-이고, 모르는 Yhbeefehdce

입니다 1,이 인코딩 형식을 사용하려면 Base64.decode 말할 방법을 찾지 못했습니다.

제발 나를 도와 줄 수 있어요. 답변을위한 Thx.

추신 : PHP 스크립트를 만질 수 없습니다.

+0

가능한 복제본 http://stackoverflow.com/questions/8340715/base64-decoding-gives-different-result?rq=1 또는 http://stackoverflow.com/questions/6837650/php-base64-encode- andnt-get-by -roid? rq = 1입니다. – shadyyx

답변

0

이 작업을 시도해야합니다 : 이로써

Base64.decode(content.getBytes("ISO-8859-1"), Base64.DEFAULT); 

당신은 content 64 기수에서 디코딩됩니다 ISO-8859-1 인코딩 된 바이트 스트림에 입력 문자열을 변환합니다.

+0

아주 많이, 나는 거의 2 일을 잃었다. – user2224706

+1

당신은 오신 것을 환영합니다! 여기에 이틀 앞두고 물어 보셔야합니다 ;-) – shadyyx

+0

여러분, Base64.DEFAULT 플래그는 결과 끝에 '\ n'을 추가한다는 점에 유의할 가치가 있습니다. 이 동작을 방지하려면 Base64.NO_WRAP을 사용하십시오. –

0

디코드는 괜찮지 만 안드로이드는 올바른 인코딩 (아마도 utf-8)을 적용하지 않는다고 생각합니다.

이 콘텐츠는 HTML 페이지에 나타 납니까? 그렇다면 ISO-8859-1 인코딩을 올바르게 적용 하시겠습니까?

또는 UTF-8로 전환 할 수도 있습니다.