在 Java 中对 URL 进行编码的最佳方法
大家好,
我有一个 URL,我想将其嵌入 mailto
的正文中。到目前为止,我已经尝试了 2 种方法来对 URL 进行编码,但它们都没有给我带来好的结果:
URLEncoder
- 这在电子邮件中给了我加号,因为显然 URLEncoder 适合仅查询参数。
org.apache.commons.httpclient.URI
- 这并没有给我完整的 URL。它给我的结果与我之前在一篇文章中解释的结果相同:Escape & MailTo 中的符号
我能做什么?
谢谢 :) Krt_马耳他
HI guys,
I have a URL and I want to embed it in the body of a mailto
. Till now, I've tried 2 methods to encode the URL and both of them did not give me good results:
URLEncoder
- this gave me plus signs in the e-mail message since apparently URLEncoder is appropriate for query parameters only.
org.apache.commons.httpclient.URI
- this doesn't give me the complete URL. It gives me the same results as I had explained in a post earlier here: Escape & symbol in MailTo
What can I do?
Thanks :)
Krt_Malta
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从
httpclient
使用URIUtil
怎么样?对以下地址进行编码
mailto:jo [电子邮件受保护] 给出
mailto:jo%20han.sj%C3%83%C2%[ email protected]
从技术上讲,
+
和%20
都是可接受的空白编码。How about using
URIUtil
fromhttpclient
?Encoding the following address
mailto:jo [email protected]
givesmailto:jo%20han.sj%C3%83%C2%[email protected]
Technically though, both
+
and%20
are acceptable encoding for a whitespace.由于空格会转换为
+
,因此只需将正文中的+
的所有实例替换为%20
就足够了吗?演示
Since spaces are converted to
+
, would it be sufficient to just replace all instances of+
with%20
in the body?Demo