Javascript 在构造mailto链接时对组件进行编码
当我使用encodeURIComponent对主体进行编码时,如下图所示,如果主体中有空格,则生成的链接将断开,如下所示: 有空间Javascript 在构造mailto链接时对组件进行编码,javascript,mailto,encodeuricomponent,Javascript,Mailto,Encodeuricomponent,当我使用encodeURIComponent对主体进行编码时,如下图所示,如果主体中有空格,则生成的链接将断开,如下所示: 有空间 body = "http://www.sample.com/sample/explore?itemId=123&type=sample&name=name with space" var newLink = "mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encod
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中链接已断开。它应该显示为正确的超链接您是否尝试在
正文
变量中用%20
替换空格
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=字符),即,例如:
空格字符(表中第五列Chr)=
%20
(表中第二列Hx)≅ +
(阅读答案)您是否尝试用%20
替换正文
变量中的空格
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=字符),即,例如:
空格字符(表中第五列Chr)=
%20
(表中第二列Hx)≅ +
(阅读答案)您是否确保这不是因为浏览器在地址栏中显示未转义的版本?您是否尝试转义而不是encodeURIComponent?是否执行控制台.log(newLink)
和您将看到它正在正确编码。您是否确保这不是因为浏览器在地址栏中显示了未替换的版本?您是否尝试了escape而不是encodeURIComponent?是否执行console.log(newLink)
您将看到它编码正确。