【问题标题】:encodeURIcomponent while constructing mailto link在构造mailto链接时编码URIcomponent
【发布时间】:2013-04-23 13:13:08
【问题描述】:

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

【问题讨论】:

  • 您确定不是因为浏览器在地址栏中显示未转义的版本吗?
  • 你试过escape而不是encodeURIComponent吗?
  • 执行console.log(newLink);,您会看到它的编码正确。

标签: javascript mailto encodeuricomponent


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-01-10
    • 2014-01-10
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 2018-04-04
    • 2011-08-19
    • 2012-11-29
    • 2010-10-18
    相关资源
    最近更新 更多