如何从我的网址中转义非英语字符,例如“ö”,因为它会导致 404 响应错误。我正在使用 Java。请帮我。
问问题
1783 次
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
于 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 回答