Bas*_*der 4 html java mailto encoding
在Java webapp中,我需要一个自动转换器来转换String以在mailto链接中使用
例如,我有这个字符串"S&D"将在html中正确显示"S&D".但现在我需要在我的网页上有一个mailto链接.
<a href="mailto:?subject=my%20subject&body=S&D">share</a>
Run Code Online (Sandbox Code Playgroud)
错误的字符"&",所以我需要将"&"转换为"%26".
有一个图书馆可以做到吗?
我尝试了java.net.URLEncoder,但她只改变了"&"而不是"&",她用"+"代替空格""我尝试了java.net.URI,但她没有为字符"&"做任何事情!
Sah*_*hoo 10
引用RFC 6068(感谢JB Nizet):
在生成'mailto'URI时,所有空格应该编码为%20,而'+'字符可以编码为%2B.请注意,"+"字符经常用作电子邮件地址的一部分,以指示子地址,例如在
<bill+ietf@example.org>.
更新的代码:
String subject = URLEncoder.encode("my subject", "utf-8").replace("+", "%20");
String body = URLEncoder.encode("S&D", "utf-8").replace("+", "%20");
// Email addresses may contain + chars
String email = "test@example.com".replace("+", "%2B");
String link = String.format("mailto:%s?subject=%s&body=%s", email, subject, body);
System.out.println(StringEscapeUtils.escapeHtml(link));
Run Code Online (Sandbox Code Playgroud)
输出:
mailto:test@example.com?subject=my%20subject&body=S%26D
Run Code Online (Sandbox Code Playgroud)
哪个可以在这样的链接中使用:
<a href="mailto:test@example.com?subject=my%20subject&body=S%26D">mail me</a>
Run Code Online (Sandbox Code Playgroud)
来自Apache Commons Lang的StringEscapeUtils.escapeHtml(String str).
| 归档时间: |
|
| 查看次数: |
6570 次 |
| 最近记录: |