&安培; url请求中的amp

时间:2010-08-10 15:31:37

标签: javascript

我从数据库中获取值并通过url作为请求发送它们,并且当没有&现在,我假设我的请求看起来像value=something&value2=something with amp &

如何直接在网址中用&替换所有&个出现,是否可以直接在请求中编写javascript?

4 个答案:

答案 0 :(得分:2)

这几乎肯定会引发争论!

我对你的问题的理解是这两个问题之一:

  

当我的数据包含符号(&)时,如何在查询字符串中传递数据。

正确的答案是你逃避它......

value=something%26with%26ampersands&value2=hello

你也需要逃避许多其他角色。

  

当&符号(&)使我的标记无效时,如何在网页上编写链接

从技术上讲,你应该写这样的链接......

<a href="mypage?value=hello&amp;value2=world">Hello World</a>

这可以防止您的标记被“实体混淆”作为&amp; character表示一个实体。

两者一起

<a href="mypage?value=something%26with%26ampersands&amp;value2=world">Hello World</a>
  

可以使用JavaScript转义地址

您可以使用:

var myAddress = escape("value=something&value2=something");

但它可能不会做你想要的。它将编码特殊字符 - 但不是* @ - _ +。 /

这意味着你会得到所有&amp;替换为%26 ...

服务器端语言可以更好地完成这项工作 - 您使用的是哪种语言?

答案 1 :(得分:0)

这听起来像是在构建该URL时要解决的问题,因此服务器端技术是问题,而不是像Javascript这样的客户端技术(除非您使用node.js等)。

在发出请求时,您应该使用URL编码,而不是使用HTML编码。如果您使用PHP从数据库中读取,urlencode函数将起作用。

<?php
    echo urlencode('foo&bar'); // foo%26bar
?>

答案 2 :(得分:0)

如果我正确理解了您要执行的操作,请不要将&更改为&amp,而是将其更改为%26这是网址转义版本。在提交数据之前,请尝试通过escape([string parameter])运行数据。

答案 3 :(得分:0)

您可以使用encodeURIComponent

功能
var q = encodeURIComponent("value=something&value2=something with amp &amp;");

你会得到:

"value%3Dsomething%26value2%3Dsomething%20with%20amp%20%26amp%3B"