2014-04-09 6 views
0

URL에 속성 (예 : test = "ae23 + raj")을 전달하고 검색합니다. 내 URL은 10.203.16.15:8080/page1?test="ae23+raj "브라우저가 '+'문자를 공백으로 바꿉니다.

입니다. 처음에는 이것이 인코딩 문제와 관련이 있다고 생각하고 해당 옵션을 사용해 보았습니다. 나중에 나는 속성 값을 가져온 후에 Window.alert (test)에 값을 출력했다. 나는 값으로 "ae23 raj"를 얻는다.

이 값이 그대로 필요합니다. 그것은 "ae23 + raj"입니다. 얼마나 많은 특수 문자가 브라우저에 의해 다른 문자로 대체 될지 모르겠습니다. 도움이 필요 하신가요? 미리 감사드립니다.

+0

URL 인코딩을 찾으십시오. – user2672165

+0

우선, 해당 속성이 아니라 쿼리 매개 변수입니다. – Braj

+0

이중 따옴표는 쿼리 param-value의 일부이기도합니까? – Braj

답변

0

URL 인코딩/디코딩. 다음은 클라이언트 측에서 사용할 수있는 JSNI 메소드입니다.

public static final native String encodeUri(String uri) /*-{ 
    return encodeURI(uri); 
}-*/; 

public static final native String decodeUri(String uri) /*-{ 
    return decodeURI(uri); 
}-*/; 
%22ae23%2Braj%22

"ae23+raj"는 부호화 된 값이다. 클라이언트 측에서 다시 디코딩하여 원하는 값을 얻습니다.


은/인코딩 URL을 디코딩하는 JavaScript에서 또한 다른 사람의 많은 방법이있다.

URL Decoder/Encoder에서 봐 참조하십시오.

자세한 내용은 HttpServletResponse#encodeURL()을 참조하여 서버 측에서 URL을 인코딩하십시오. 키 - 값 구분 기호로 =&로 구분 된 키 - 값 쌍 : URL 쿼리를 얻을 수있는 방법


대부분의 사람들이 무엇을 사용 application/x-www-form-urlencoded (로 인코딩 된 쿼리 문자열에서

/** The query params. */ 
private static Map<String, String> queryParams = new HashMap<String, String>(); 

static { 
    Map<String, List<String>> paramsMap = Window.Location.getParameterMap(); 
    for (String key : paramsMap.keySet()) { 
     List<String> values = paramsMap.get(key); 
     if (values.size() > 0) { 
      String value = decodeUri(values.get(0)); 
      queryParams.put(key.toLowerCase(), value); 
      queryParams.put(key, value); 
     } 
    } 
} 
+0

안녕 Braj, 답장을 보내 주셔서 감사합니다. 이 이스케이프 메소드는 인코딩 URL을 제공합니다. 하지만 다시 쿼리 매개 변수 값을 가져올 URL을 구문 분석해야합니다. 대신 나는 Window.Location.getQueryString() 구문 분석하여 param 값을 얻을 수 있습니까? 친절한 조언이 바람직합니다. 감사합니다 – Rajesh

+0

나는 내 게시물을 업데이 트했습니다. 한번 봐주세요. – Braj

+0

이 코드를 Entry Point 클래스에 넣고 이제 응용 프로그램에서이 맵을 사용하십시오. – Braj

0

을 PARAMS)이면 +은 공백의 인코딩 된 값인 http://www.w3.org/TR/html5/forms.html#url-encoded-form-data입니다.

공간에 %20을 사용해야합니다.

... 나에 +를 디코딩한다 (몇 가지 이름을 GWT의 Window.Location#getParameterHttpServlerRequest#getParameter 등) 당신은 사실상의 표준에서 벗어날 수 있지만, 당신은 당신의 쿼리 문자열을 직접 구문 분석해야합니다, 모든 도구로 공간.

관련 문제