1

当我使用 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 中链接已损坏。它应该显示为正确的超链接

4

1 回答 1

1

您是否尝试在变量中space替换为?%20body

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

我建议您使用工具将纯文本编码为querystring。例如,如果您需要传递换行符( \n),请使用%0Afor newline\n%0Dfor 回车\r。看这张ASCII表就明白编码了:第二列(Hx=十六进制ASCII表示),加上a%作为前缀,对应第五列报的红色字符(Chr=字符),即例如:

空格字符(表中的第五列,Chr)= %20(表中的第二列,Hx)≅ +(阅读答案)

于 2019-11-16T16:01:35.157 回答