Escape не английские символы в URL - PullRequest
1 голос
/ 10 июня 2011

Как мне избежать неанглийских символов, таких как "ö", из моего URL, так как это вызывает ошибку 404 ответа. Я использую Java. Пожалуйста, помогите мне.

Ответы [ 4 ]

5 голосов
/ 10 июня 2011

например. используя URL-кодировку, как указано в RFC3986 (http://tools.ietf.org/html/rfc3986).. Пожалуйста, также посмотрите на: http://en.wikipedia.org/wiki/Percent-encoding

Java предоставляет несколько методов для этого:

http://download.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html

Помните о различных кодировках, таких как ISO-8859-1 / 15, UTF-8. В зависимости от этого, например, 'ö' будет закодировано в% F6 или & C3% D6 (или что-то подобное).

3 голосов
/ 10 июня 2011

Попробуйте java.net.URLEncoder

3 голосов
/ 10 июня 2011

используйте URLEncoder / URLDecoder в пакете java.net

2 голосов
/ 12 апреля 2012

У меня была похожая проблема, в 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 () является ответом на эту проблему.

...