encodeuriccomponent,同时构造mailto链接

encodeURIcomponent while constructing mailto link

本文关键字:mailto 链接 encodeuriccomponent      更新时间:2023-09-26

当我使用encodeuriccomponent对正文进行编码时,如果正文中有空格,则生成的链接将断开,如下所示:

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

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

我如何修复它并创建一个有效的url?

console.log正确显示编码的url,但在outlook中链接被破坏了。它应该显示为一个合适的超链接

您是否尝试用body变量中的%20替换space ?

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

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

space character(第五列,Chr,在表中)= %20(第二列,Hx,在表中)= +(读这个答案)