转义网址中的非英文字符

发布于 2024-11-14 17:56:56 字数 60 浏览 2 评论 0原文

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

How can I escape non-english characters like "ö" from my url since it causes 404 response error. I am using Java. Please help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

岁月静好 2024-11-21 17:56:58

我遇到了类似的问题,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() 是该问题的答案。

I had a similar problem, there was a 'ü' in URL path. After a few hours of experimenting with various SO posts I got this (from here):

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());

Trick is in converting URI to URL. Most answers ended with URI.toURL() method call. While this method correctly encodes whitespaces and non-letter characters, it doesn't encode non-ASCII letters. Method URI.toASCIIString() is answer to that problem.

阳光下慵懒的猫 2024-11-21 17:56:57

例如,使用 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 (或类似的东西)。

E.g. by using URL-Encoding as specified in RFC3986 (http://tools.ietf.org/html/rfc3986). Please also have a look at: http://en.wikipedia.org/wiki/Percent-encoding

Java provides some methods to do this:

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

Be aware of different encodings like ISO-8859-1/15, UTF-8. Depending on this for example an 'ö' will be encoded to %F6 or &C3%D6 (or sth. like this).

无风消散 2024-11-21 17:56:57

在 java.net 包中使用 URLEncoder/ URLDecoder

use URLEncoder/ URLDecoder in the java.net package

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文