转义网址中的非英文字符
如何从我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我遇到了类似的问题,URL 路径中有一个“ü”。经过几个小时尝试各种 SO 帖子后,我得到了这个(从这里 ):
技巧是将 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):
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.
例如,使用 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).
在 java.net 包中使用 URLEncoder/ URLDecoder
use URLEncoder/ URLDecoder in the java.net package
尝试 java.net.URLEncoder
Try the java.net.URLEncoder