1

如何从我的网址中转义非英语字符,例如“ö”,因为它会导致 404 响应错误。我正在使用 Java。请帮我。

4

4 回答 4

5

例如,使用 RFC3986 (http://tools.ietf.org/html/rfc3986) 中指定的 URL 编码。另请查看: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 (或类似这样的东西)。

于 2011-06-10T11:11:56.463 回答
3

使用 java.net 包中的 URLEncoder/ URLDecoder

于 2011-06-10T11:10:27.103 回答
3

试试java.net.URLEncoder

于 2011-06-10T11:10:44.607 回答
2

我遇到了类似的问题,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() 是对这个问题的回答。

于 2012-04-12T13:44:12.733 回答