와 20 %를 교체합니다. 백엔드에서 % 20을 (를) 대체 할 수는 있지만 올바른 접근 방식이 아니므로 응용 프로그램의 어느 곳에서나 발생할 수 있습니다. 자바 URL의 PARAM 내 웹 페이지에서 공간
당신이 양식을 제출하면 프런트 엔드에서 그것을 처리하는 더 좋은 방법이 있나요?답변
당신은, a를 URLDecoder을 통해 단지 20 %의 문제를 정렬되지 않은 방법을 전달할 수 있지만, 다른 urlencoded로는 아무 문제가 없습니다 http://docs.oracle.com/javase/7/docs/api/java/net/URLDecoder.html
FDo 모든 URL 요청에 이것을 적용해야합니까? – McQueen
모든 양식 제출 예. –
값. URL에서 문자가 이스케이프 처리되는 방식입니다.
String decoded = URLDecoder.decode(queryString, "UTF-8");
는 그런 다음 URL의 쿼리 부분을 파싱 키/값 쌍의지도를 구축 할 수 있습니다 : 그 이름에도 불구하고, 그것은 application/x-www-form-urlencoded
디코딩을 수행, 때문에 특히 적합하다, URLDecoder
를 사용한다 &
으로 분할하고 =
을 사용하여 값과 키를 구분합니다 (null
일 수도 있음).
그러나 URL이 URI
개체로 전달 된 경우에는 이미 이스케이프 처리되지 않은 텍스트를 반환하는 nice getQuery()
이 있습니다. 당신은 서블릿 API를 사용하는 경우
, 당신은 getParameterMap()
같은 좋은 방법이 있기 때문에 아무것도 탈출 할 필요가 없습니다. '% 20`을 받고 문제
아마도 서버 측에서 사용하는 프레임 워크는 일부 * params * 맵에서 모든 것을 사용할 수있게합니다. 필자의 예제에서 UTF-8은 디코더가 '% 20'이 참조하는 charset을 알아야하기 때문에 제공됩니다. "* 현재 URL 요청은 이미 UTF-8입니다 *"정확히 의미하는 것이 무엇인지 모르겠습니다 ... – Raffaele
요청 줄 (호스트 뒤에있는 부분 포함)은 ASCII 문자의 하위 집합 만 포함 할 수 있습니다. 또한 일부 문자는 특수 문자이므로 이스케이프해야합니다. 또한, 화이트리스트 이외의 모든 문자는 %의 XX'는'사용하여 이스케이프해야합니다 - 참조 [RFC 2396] (http://www.ietf.org/rfc/rfc2396.txt) 아무 것도이 같은이 없습니다 – Raffaele
* UTF-8 charset *. 유니 코드 세트가 있고 UTF-8은 인코딩 체계입니다. 내 대답에 사용되는 자바 API는 옥텟에서 문자를 구성하는 체계가 필요하다. – Raffaele
try {
String result = URLDecoder.decode(urlString, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
아무것도. URL = URL.replaceAll ("% 20", ""); ' – Maroun
url = url.value.replace ("% 20", ""); –
더 좋은 방법은 없습니다. 이것이 표준 HTTP 웹 인코딩입니다.이 형식으로되어 있어야합니다. 맞습니다. 자세한 내용은 W3C의이 인코딩 문서를 참조하십시오. http://www.w3schools.com/tags/ref_urlencode.asp 당신이 그것을 할 필요가 없습니다 – ninnemannk