У меня была похожая проблема, в URL-пути было 'ü'. После нескольких часов экспериментов с различными сообщениями SO я получил ( отсюда ):
URL url = new URL(urlString);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = new URL(uri.toASCIIString());
Хитрость заключается в преобразовании URI в URL. Большинство ответов заканчивались вызовом метода URI.toURL (). Хотя этот метод правильно кодирует пробелы и небуквенные символы, он не кодирует не-ASCII-буквы. Метод URI.toASCIIString () является ответом на эту проблему.