¿Cómo unescape Url en Java?


Cuando leo el xml a través de 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".

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

Quiero que la url no se escape.

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

Author: Penchant, 2009-03-08

3 answers

Esto no es XML no grabado, esto es texto codificado en URL. Me parece que desea utilizar lo siguiente en las cadenas de URL.

URLDecoder.decode(url);

Esto le dará el texto correcto. El resultado de la decodificación de la como usted proporcionó es este.

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.

 54
Author: ng.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-08 17:52:19

URLDecoder.decode(String s) ha sido obsoleta desde Java 5

Debe 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 World Wide Web Consortiumestablece que UTF-8 debe utilizarse. No hacerlo puede introducir incompatibilidades.

 3
Author: freedev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-15 16:32:05

Estoy teniendo problemas usando este método cuando tengo caracteres especiales como á, é, í, etc. Mi (probablemente salvaje) conjetura es widechars no están siendo codificados correctamente... bueno, al menos esperaba ver secuencias como %uC2BF en lugar de %C2%BF.

Editado: Mi mal, este post explica la diferencia entre la codificación URL y las secuencias de escape de JavaScript: Codificación URI en UNICODE para apache httpclient 4

 0
Author: Mario,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:25:36