我正在从数据库中获取值并通过url发送它们作为请求,并且当数据库中没有&值时,它的请求成功我现在假设我的请求应该看起来像value=something&value2=something with amp &
& url请求
如何直接在url中替换所有&
发生与&
,是否可以直接在请求中写入javascript?
我正在从数据库中获取值并通过url发送它们作为请求,并且当数据库中没有&值时,它的请求成功我现在假设我的请求应该看起来像value=something&value2=something with amp &
& url请求
如何直接在url中替换所有&
发生与&
,是否可以直接在请求中写入javascript?
可以使用功能encodeURIComponent
:
var q = encodeURIComponent("value=something&value2=something with amp &");
,你会得到:
"value%3Dsomething%26value2%3Dsomething%20with%20amp%20%26amp%3B"
这听起来像是一个需要在构建URL时解决的问题,所以服务器端技术是问题,而不是像Javascript这样的客户端技术(除非使用node.js或类似的东西) 。
您应该使用网址编码,而不是HTML编码。如果您使用PHP从数据库中读取数据,则urlencode
函数将执行此操作。
<?php
echo urlencode('foo&bar'); // foo%26bar
?>
这几乎肯定会引发一场辩论!
我你的问题的理解是这两种的:
我如何通过查询字符串数据时,我的数据包含符号(&)。
和正确的答案是,你逃避它...
value=something%26with%26ampersands&value2=hello
您还需要逃避很多其他角色了。
我怎样写一个网页上的链接时,符号(&)使我的标记无效
从技术上讲,你应该写你的链接像这样...
<a href="mypage?value=hello&value2=world">Hello World</a>
这防止您的标记变得“实体混乱”,因为&字符表示实体。
两者一起
<a href="mypage?value=something%26with%26ampersands&value2=world">Hello World</a>
你能逃脱使用JavaScript
地址可以使用:
var myAddress = escape("value=something&value2=something");
但它可能不会做你想。它将编码特殊字符 - 但不是* @ - _ +。/
这意味着你会得到所有&有26%换成...
服务器端语言做的这一个更好的工作 - 您使用什么语言?
如果我正确理解这一点,你所要做的就是不要将&
改为&
你正在寻找改变它为%26
这是url转义版本。在提交之前,请尝试通过escape([string parameter])
运行数据。