【问题标题】:ampersand not passing through url& 符号不通过 url
【发布时间】:2010-12-15 14:09:29
【问题描述】:

在我的网站www.gibberize.com 上,如果您在顶部文本区域中输入单词“and”,字符“&”将出现在第二个文本区域中。

问题是“tweet it”链接会将第二个文本区域的文本附加到 url 并继续链接,但因为它是一个 & 符号,它会破坏文本。

有什么解决办法吗?

【问题讨论】:

  • 你用什么语言做后端编码?

标签: javascript html url ampersand


【解决方案1】:

使用 PHP 的 urlencode() 函数。

【讨论】:

  • 哦,那当然是假设您使用的是 PHP。对此感到抱歉。
  • 这无论如何都行不通,因为转换都是客户端。
  • 没关系。关键是推文是通过 URL 发送的。
【解决方案2】:

是的,在附加推文之前转义 & 符号,将任何 & 更改为 %26。你可能想

encodeURIComponent()

全文。

注意:我建议的原始函数是 escape()。

【讨论】:

  • escape 不适合 URL 编码; EncodeURIComponent 是正确的。 escape 真的不应该用于任何事情。
【解决方案3】:

使用encodeURIComponent 函数。您可以自己将其更改为%26,但使用提供的功能更安全,因为它可以处理任何其他可能在传输过程中搞砸的奇怪字符。

【讨论】:

  • 也最好直接设置element.href=;不要使用setAttribute,它在 IE 中的可读性较差并且存在各种错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多