encodeURIcomponent在构造mailto链接时

时间:2013-04-23 13:13:09

标签: javascript mailto encodeuricomponent

当我使用encodeURIComponent对身体进行编码时,如下所示,如果正文中有空格,则生成的链接会断开,并显示如下:

http://www.sample.com/sample/explore?itemId=123&type=sample&name=name空格

body = "http://www.sample.com/sample/explore?itemId=123&type=sample&name=name with space"

var newLink = "mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body);

window.location = newLin

如何修复它并创建有效的网址?

console.log正确显示已编码的url但在outlook中链接已断开。它应该显示为适当的超链接

1 个答案:

答案 0 :(得分:1)

您是否尝试过将space变量中的%20替换为body

body = "http://www.sample.com/sample/explore?itemId=123&type=sample&name=name%20with%20space"

我建议您使用this工具将纯文本编码为 querystring 。例如,如果您需要传递 newline \n),则将%0A用于换行符\n,将%0D用于回车符{{ 1}}。查看this ASCII表以了解编码:第二列(Hx =十六进制ASCII表示)以\r作为前缀,对应于第五列中报告的红色字符(Chr =字符) ,例如:

空格字符(表格中的第五列,Chr)= %(表格中的第二列,Hx)≅%20(读为{{3} }答案)