2010-08-10 63 views
2

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

如何直接在url中替换所有&发生与&,是否可以直接在请求中写入javascript?

回答

0

可以使用功能encodeURIComponent

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

,你会得到:

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

这听起来像是一个需要在构建URL时解决的问题,所以服务器端技术是问题,而不是像Javascript这样的客户端技术(除非使用node.js或类似的东西) 。

您应该使用网址编码,而不是HTML编码。如果您使用PHP从数据库中读取数据,则urlencode函数将执行此操作。

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

这几乎肯定会引发一场辩论!

我你的问题的理解是这两种的:

我如何通过查询字符串数据时,我的数据包含符号(&)。

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

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

您还需要逃避很多其他角色了。

我怎样写一个网页上的链接时,符号(&)使我的标记无效

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

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

这防止您的标记变得“实体混乱”,因为&字符表示实体。

两者一起

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

你能逃脱使用JavaScript

地址可以使用:

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

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

这意味着你会得到所有&有26%换成...

服务器端语言做的这一个更好的工作 - 您使用什么语言?

0

如果我正确理解这一点,你所要做的就是不要将&改为&amp你正在寻找改变它为%26这是url转义版本。在提交之前,请尝试通过escape([string parameter])运行数据。