2009-03-08 12 views
32

Cuando leo el xml a través del InputStream de una URL, y luego recorto todo excepto la url, obtengo "http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%20Bin%20Bataye.mp3".¿Cómo se eliminan las URL en Java?

Como puede ver, hay una gran cantidad de "% 20" s.

Quiero que la URL se desactive.

¿Hay alguna manera de hacer esto en Java, sin usar una biblioteca de terceros?

+0

Para ser pedantes, no existe el "unicode normal". UTF8 es una de varias formas de representar texto unicode. Pero no hay una representación canónica "verdadera". – jalf

+0

Como Jon y ng dijeron, esto no tiene nada que ver con Unicode o UTF-8. Es posible que desee cambiar el título. –

Respuesta

54

Esto no es unescaped XML, esto es texto codificado en la URL. Me parece que quiere usar lo siguiente en las cadenas de URL.

URLDecoder.decode(url); 

Esto le dará el texto correcto. El resultado de decodificar lo que usted proporcionó es esto.

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

El% 20 es un carácter de espacio escapado. Para obtener lo anterior, utilicé el objeto URLDecoder.

+42

Ese método está en desuso. Use URLDecoder.decode (ubicación, "UTF-8"); –

0

tengo problemas con este método cuando tenga caracteres especiales como á, é, í, etc. Mi (probablemente silvestre) conjetura es widechars no están siendo adecuadamente codificadas ... bueno, al menos yo esperaba ver secuencias como %uC2BF en lugar de %C2%BF.

Editado: Mi mal, este post explica la diferencia entre la codificación URL y secuencias de escape de JavaScript: URI encoding in UNICODE for apache httpclient 4

Cuestiones relacionadas