2017-11-23 9 views
0

가정하자 나는 URL을URLEncoder이 모든 문자열에 특정 UTF-8 문자를 인코딩하는

문자열 URL =이 "http://myweb.com/page1?param1=Financiële이 resultaten & PARAM2 = 소비자"

URLEncode.encode에 내가 원하는

(URL, "UTF-8")이 문자열. 나는 공간과 앰퍼샌드 (&)가 (ë과 ù) 그대로 유지되도록 인코딩되기를 원한다. 그래서 최종 URL은

http://myweb.com/page1?param1=Financiële%20resultaten%27param2=consùmer

어떻게 자바에서 이것을 달성하기 위해해야 ​​하는가?

답변

0

먼저 쿼리 매개 변수 인코딩에만 URIEncode을 사용해야합니다. 그러면 인코딩 할 것은 '?'입니다. 캐릭터.

질문에 대한 또 다른 문제점은 실제로 전체 쿼리를 인코딩하지 않는다는 것입니다. 따라서 특정 문자에 대해 인코딩 할 방법이 없습니다. 그런 다음 질문을 '다른 문자로 대체 할 수있는 방법'과 같은 형식으로 변환 할 수 있습니다. 따라서 변경할 문자에 replaceAll 메서드를 사용하거나 문자를 별도로 인코딩하려는 경우 indexOf 메서드를 사용하여 병합해야 할 수 있습니다.

String query = "page1?param1=Financiële resultaten&param2=consùmer"; 
query.replaceAll("\\s+","%20"); 

다음 문자열이 "? PAGE1 PARAM1 = Financiële % 20resultaten & PARAM2 = 소비자"가된다 :

하는 방법입니다

가 완전히 대체 방법을 사용하여 시작하는 같은입니다.