当我通过URL的InputStream读取xml,然后删除除url之外的所有内容时,我得到" http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu% 20Bin%20Bataye.mp3 ".
如你所见,有很多"%20".
我希望网址不被转义.
有没有办法在Java中这样做,而不使用第三方库?
这不是未转义的XML,这是URL编码的文本.在我看来,你想在URL字符串上使用以下内容.
URLDecoder.decode(url);
这将为您提供正确的文本.你提供的解码结果是这样的.
http://cliveg.bu.edu/people/sganguly/player/ Rang De Basanti - Tu Bin Bataye.mp3
%20是一个转义空格字符.为了得到上述内容,我使用了URLDecoder对象.
URLDecoder.decode(String s)
自Java 5以来已被弃用
你应该用URLDecoder.decode(String s, String enc)
.
例如:
URLDecoder.decode(url, "UTF-8")
关于要使用的编码:
注意:万维网联盟建议书规定应使用UTF-8.不这样做可能会引入不相容性.