¿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?
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.
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.
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
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