누군가가 통찰력을 가지고 있을지도 모른다는 궁금한 점이 있습니다. 특정 시점에서특정 문자의 수수께끼 내 URL 디코딩 - Android URI/Google App Engine
uri = new URI(request);
:
request = REQUEST_BASE + "?action=loadauthor&author=" + URLEncoder.encode(author, "UTF-8");
나는 다음과 같은 URI를 문자열에 몇 가지 다른 매개 변수를 추가하고 생성 : 나는 다음과 같은 코드를 사용하여 안드로이드에 URL에 쿼리 문자열을 인코딩
:uri.getRawQuery().getBytes();
가 그럼 난과 함께 그것의 방법에 보내 : 나는 체크섬을 확인하기 위해 쿼리 문자열을 당겨 AppEngine에 서버에서
, 나는 다음 문자열을 검색하고 체크섬과 일치하려고 :
String query = req.getQueryString();
일반적으로, 이것은 잘 작동합니다. 그러나 서버로가는 도중 인코딩되지 않은 문자가 몇 가지 있습니다.
을 : 예를 들어,행동 = loadauthor & 저자 = 찰스 + 알렉산더 + % 28Ohiyesa의 % 29 + 이스트만 & 타임 스탬프 = 1343261225838 & 사용자 = 1,479,845,600
는 다음과 같이 서버 로그에 표시 (와 GAE 응용 프로그램에서)
행동 = loadauthor & 저자 = 찰스 + 알렉산더 + (Ohiyesa) + 이스트만 & 타임 스탬프 = 1343261226837 & 사용자 = 1,479,845,600
이는 사장님 (몇 자 발생 괄호). 다른 문자는 계속 인코딩됩니다. 누구든지 내가 잘못하고있는 것에 대해 생각하고 있습니까? 모든 의견을 보내 주시면 감사하겠습니다.
문제는 ** ** 인코딩 괄호입니다. (그런 다음 어딘가에 해독 당한다.) 그렇지 않다면 나는 아주 행복 할 것이다. 나는 일반적인 java.net.URLEncoder를 사용하고있다. 그러나 이것이 예상 된 행동이라고 생각합니다. [doc] (http://developer.android.com/reference/java/net/URLEncoder.html)에는 '글자를 제외한 모든 문자 ('a '..'z ','A '..'Z '), 숫자 ('0'.. '9') 및 문자 '.', '-', '*', '_'는 '%'가 앞에 붙는 16 진수 값으로 변환됩니다. 예 : '#'-> % 23. 또한 공백은 '+'로 대체됩니다. ' – Tad