2009-03-08 3 views
32

URL의 InputStream을 통해 XML을 읽은 다음 URL을 제외한 모든 것을 잘라내면 "http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%20Bin%20Bataye.mp3"이 표시됩니다.Java에서 URL을 이스케이프 처리하지 않으려면 어떻게해야합니까?

"% 20"이 많이 있습니다.

URL의 이스케이프 처리를 원합니다.

제 3 자 라이브러리를 사용하지 않고 Java에서이를 수행 할 수있는 방법이 있습니까?

+0

"그냥 평범한 유니 코드"와 같은 것은 존재하지 않습니다. UTF8은 유니 코드 텍스트를 표현하는 몇 가지 방법 중 하나입니다. 그러나 "진정한"정식 표현은 없습니다. – jalf

+0

Jon과 ng가 말했듯이 이것은 유니 코드 또는 UTF-8과 아무 관련이 없습니다. 제목을 변경하고자 할 수 있습니다. –

답변

54

이것은 이스케이프 처리되지 않은 XML이 아니며 URL로 인코딩 된 텍스트입니다. URL 문자열에서 다음을 사용하려는 것처럼 보입니다.

URLDecoder.decode(url); 

올바른 텍스트를 제공합니다. 당신이 제공 한 것과 같은 것을 디코딩 한 결과는 이것입니다.

http://cliveg.bu.edu/people/sganguly/player/ Rang De Basanti - Tu Bin Bataye.mp3 

% 20은 이스케이프 된 공백 문자입니다. 위의 내용을 얻으려면 URLDecoder 객체를 사용했습니다.

+42

해당 메소드는 더 이상 사용되지 않습니다. URLDecoder.decode (location, "UTF-8")를 사용하십시오. –

0

나는 적어도 I가 기다리고 있었다, 음 ... 내가 내 (아마도 야생) 추측 widechars가 제대로 인코딩되지 않습니다 등등 á, é, í, 같은 특수 문자가이 방법을 사용하는 데 문제가 있어요 %C2%BF 대신 %uC2BF과 같은 시퀀스를 참조하십시오.

편집 : 내 나쁜,이 게시물은 URL 인코딩 및 자바 스크립트의 이스케이프 시퀀스의 차이를 설명 : URI encoding in UNICODE for apache httpclient 4