Codificación de dirección URL HTTP en Java

Mi aplicación independiente Java obtiene una URL (que apunta a un archivo) del usuario y necesito presionarla y descargarla. El problema al que me enfrento es que no puedo codificar la dirección URL HTTP correctamente ...

Ejemplo

URL:  http://search.barnesandnoble.com/booksearch/first book.pdf

java.net.URLEncoder.encode(url.toString(), "ISO-8859-1");

me devuelve:

http%3A%2F%2Fsearch.barnesandnoble.com%2Fbooksearch%2Ffirst+book.pdf

Pero, lo que quiero es

http://search.barnesandnoble.com/booksearch/first%20book.pdf

(espacio reemplazado por% 20)

SupongoURLEncoder no está diseñado para codificar URL HTTP ... El JavaDoc dice "Clase de utilidad para codificación de formulario HTML" ... ¿Hay alguna otra forma de hacer esto?

Respuestas a la pregunta(24)

Su respuesta a la pregunta