4

我使用 GET 方法将如下变量传递给 url

http://www.mysite.com/demo.php?sid=123121&email_id=stevemartin144%40gmail.com

& 当我在 demo.php 上打印 $_GET 时,它显示的参数如下:

email_id    stevemartin144@gmail.com
sid 123121

而不是上面的输出,我想要传递的参数

email_id    stevemartin144%40gmail.com
sid 123121

我不想将 %40 转换为 @

请建议我解决这个问题

提前致谢

4

2 回答 2

3

URL 中的“%40”表示“@”。如果您希望“%”表示“%”,则需要将其 URL 编码为“%25”。

URL 编码只是一种传输编码。如果你输入“@”,它的传输编码版本是“%40”,但收件人会再次得到“@”。如果您想输入“%40”并让收件人收到“%40”,则需要将其 URL 编码为“%2540”。

如果收件人正确接收到“@”,但无论出于何种原因您想使用 URL 编码版本,您也可以让收件人再次对其进行 urlencode。

于 2013-06-25T13:04:05.740 回答
0

笔记:

在线转换器:

用等效的十六进制 unicode 替换特殊字符。有关 unicode 列表,请参阅网站https://unicode-table.com(或)http://unicodelookup.com

使用 Python 的本地转换器:

参考:密码“p@s#w:E”到unicode的转换如下,

@ = %40
$ = %24
# = %23
: = %3A
p@s#w:E = p%40s%23w%3AE

输入:

[root@localhost ~]# python -c "import sys, urllib as enc; print enc.quote_plus(sys.argv[1])" "p@s#w:E"

输出:

p%40s%23w%3AE
于 2018-07-15T08:21:02.233 回答