2009-03-08 4 views
32

Lorsque je lis le fichier XML via InputStream d'une URL, puis que je supprime tout sauf l'URL, j'obtiens "http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%20Bin%20Bataye.mp3".Comment désapparaître les URL en Java?

Comme vous pouvez le voir, il y a beaucoup de "% 20".

Je souhaite que l'URL soit désactivée.

Existe-t-il un moyen de le faire en Java, sans utiliser de bibliothèque tierce?

+0

Juste pour être pédant, il n'y a pas de "normal unicode". UTF8 est l'une des façons de représenter le texte Unicode. Mais il n'y a pas de "vraie" représentation canonique. – jalf

+0

Comme Jon et ng l'ont dit, cela n'a rien à voir avec Unicode ou UTF-8. Vous pourriez vouloir changer le titre. –

Répondre

54

Il ne s'agit pas d'un fichier XML non effacé, c'est un texte codé en URL. Il me semble que vous voulez utiliser ce qui suit sur les chaînes d'URL.

URLDecoder.decode(url); 

Ceci vous donnera le texte correct. Le résultat du décodage que vous avez fourni est celui-ci.

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

Le% 20 est un caractère d'espace échappé. Pour obtenir ce qui précède, j'ai utilisé l'objet URLDecoder.

+42

Cette méthode est obsolète. Utilisez URLDecoder.decode (emplacement, "UTF-8"); –

0

Je vais avoir des problèmes avec cette méthode quand j'ai des caractères spéciaux comme á, é, í, etc. Mon (probablement sauvage) suppose widechars ne sont pas correctement codés ... eh bien, au moins je comptais voir des séquences comme %uC2BF au lieu de %C2%BF.

Modifié: Mon mauvais, ce poste explique la différence entre le codage URL et les séquences d'échappement de JavaScript: URI encoding in UNICODE for apache httpclient 4

Questions connexes