Pregunta

Cuando leo el xml a través de InputStream de una URL, y luego recorte todo excepto la url, obtengo " http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%20Bin % 20Bataye.mp3 " ;.

Como puedes ver, hay muchos "% 20 " s.

Quiero que no se escape la url.

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

¿Fue útil?

Solución

Esto no es un XML sin escape, este es un texto codificado en URL. Me parece que quieres usar lo siguiente en las cadenas de URL.

URLDecoder.decode(url);

Esto le dará el texto correcto. El resultado de la decodificación de lo que proporcionaste es este.

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

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

Otros consejos

URLDecoder.decode (String s) ha quedado en desuso desde Java 5

Debes usar URLDecoder.decode (String s, String enc) .

Por ejemplo:

URLDecoder.decode(url, "UTF-8")

Con respecto a la codificación a utilizar:

  

Nota: La Recomendación del Consorcio World Wide Web indica que se debe utilizar UTF-8 . No hacerlo puede introducir incompatibilidades.

Tengo problemas para usar este método cuando tengo caracteres especiales como & # 225; , & # 233; , & # 237; , etc. Mi (probablemente salvaje) supongo que las widechars no se codifican correctamente ... bueno, al menos esperaba ver secuencias como % uC2BF en lugar de % C2% BF .

Editado: malo, esta publicación explica la diferencia entre la codificación de URL y las secuencias de escape de JavaScript: codificación URI en UNICODE para apache httpclient 4

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top