在Java中编码URL的最佳方法

嗨,大家好,

我有一个URL,我想将它嵌入到mailto的主体中。 直到现在,我已经尝试了两种方法对URL进行编码,这两种方法都没有给我带来好的结果:

URLEncoder – 这给了我电子邮件中的加号,因为显然URLEncoder仅适用于查询参数。

org.apache.commons.httpclient.URI – 这不会给我完整的URL。 它给了我与之前在post中解释的结果相同的结果: MailTo中的Escape和符号

我能做什么?

谢谢:) Krt_Malta

如何使用httpclient URIUtil

 URIUtil.encodeQuery(strUrl, "UTF-8"); 

编码以下地址mailto:jo han.sjoberg@m.commailto:jo%20han.sj%C3%83%C2%B6berg@m.com mailto:jo han.sjoberg@m.com mailto:jo%20han.sj%C3%83%C2%B6berg@m.com

从技术上讲, +%20都是可接受的空格编码。

由于空格被转换为+ ,只需用体内的%20替换+所有实例就足够了吗?

 mailto: ?subject=Look at this link&body=Check%20out%20this%20too%20http://localhost:9001/view/shopindex/display?keyword=test%26searchPostcode=Postcode" 

演示