Question

Lorsque je lis le XML par le biais du flux InputStream d'une URL, puis que je coupe tout sauf l'URL, je reçois un http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20T%%Bin%20Binant % 20Bataye.mp3 " ;.

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

Je veux que l'URL ne soit pas échappé.

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

Était-ce utile?

La solution

Ce n'est pas du XML non échappé, c'est du texte encodé en URL. Il me semble que vous souhaitez utiliser les éléments suivants dans les chaînes d'URL.

URLDecoder.decode(url);

Cela vous donnera le texte correct. Voici le résultat du décodage similaire à celui que vous avez fourni.

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

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

Autres conseils

URLDecoder.decode (String s) est obsolète depuis Java 5

Vous devez utiliser URLDecoder.decode (String s, String enc) .

Par exemple:

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

En ce qui concerne l'encodage à utiliser:

  

Remarque: La Recommandation du Consortium World Wide Web indique que UTF-8 doit être utilisé. Ne pas le faire peut introduire des incompatibilités.

J'ai des problèmes pour utiliser cette méthode lorsque des caractères spéciaux tels que & # 225; , & # 233; , & # 237; , etc. Mon estimation (probablement sauvage) est que les widechars ne sont pas encodés correctement ... du moins, je m'attendais au moins à voir des séquences telles que % uC2BF au lieu de % C2% BF .

Édité: My bad, cet article explique la différence entre l'encodage d'URL et les séquences d'échappement JavaScript: Codage URI dans UNICODE pour Apache httpclient 4

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top