Bibliothèque Java pour le codage d'URL si nécessaire (comme un navigateur)

Si je mets de la http://localhost:9000/space test URL de la barre d'adresse d'un navigateur web, il appelle le serveur avec http://localhost:9000/space%20test.
http://localhost:9000/specÁÉÍtest sera également codé à http://localhost:9000/spec%C3%81%C3%89%C3%8Dtest.

Si mettre de l'encodage des Url dans la barre d'adresse (c'est à dire http://localhost:9000/space%20test et http://localhost:9000/spec%C3%81%C3%89%C3%8Dtest), ils restent les mêmes (ils ne seront pas codées double).

Est-il une API Java ou de la bibliothèque qui fait ce codage? L'Url provient de l'utilisateur, donc je ne sais pas si ils sont encodés ou non.

(Si il n'y a pas serait-il assez de recherche pour % dans la chaîne d'entrée et de coder si il ne l'est pas, ou est-il un cas particulier où cela ne fonctionnerait pas?)

Edit:

URLEncoder.encode("space%20test", "UTF-8") revient avec space%2520test qui n'est pas ce que je voudrais, car il est double codé.

Edit 2:

En outre, les navigateurs traitent partiellement Url codées, comme http://localhost:9000/specÁÉ%C3%8Dtest, bien, sans double-codage. Dans ce cas, le serveur reçoit l'URL suivante: http://localhost:9000/spec%C3%81%C3%89%C3%8Dtest. Il en est de même de la forme codée de ...specÁÉÍtest.

Utilisation URLEncoder.encode() méthode?

OriginalL'auteur palacsint | 2013-01-16