我正在尝试将百分号(%)传递给网址,如
%B6011000995504101^SB
但是当我回音时,它会返回
♦011000995504101^SB
我想要在URL中传递完全相同的值。
我曾尝试使用urlencode()函数,但它给我这样的输出......
%B6011000995504101%5ESB
请帮我解决这个问题
答案 0 :(得分:56)
要在网址中发送%
符号,请发送%25
。
在您的情况下,为了让php看到百分号,您必须将字符串%25B6011000995504101^SB
传递给服务器。
在网址中,百分号具有特殊含义。用于编码特殊字符。例如,&
是参数之间的分隔符,因此如果您希望参数实际上包含 &
,则代之以编写%26
。因为百分号用于编码特殊字符,所以也是一个特殊字符,因此如果要实际发送百分号,也必须对其进行编码。百分号的编码为%25
。
答案 1 :(得分:3)
在将一个原始字符串包含在URL中之前,最好通过urlencode传递它,如下所示:
<?php
$original='%B6011000995504101^SB';
$updated=urlencode($original);
echo "<a href=\"some_page.php?$updated\">Link here</a>";
?>
接收页面将知道该怎么做 - 试试你的网络服务器上的这个例子:
<?php
if($_GET['argument']) {
echo "<p>You passed in the argument "$_GET[argument]"</p>";
}else {
echo "<p>No argument was passed.</p>";
}
$original='%B6011000995504101^SB';
$updated=urlencode($original);
echo "<a href=\"urlencode.php?argument=$updated\">Link here</a>";
?>
(将文件命名为 urlencode.php )