%40在Get上转换为@

时间:2013-06-25 13:00:56

标签: encoding url-encoding

我使用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转换为@

请建议我解决这个问题

提前致谢

2 个答案:

答案 0 :(得分:3)

URL 中的

“%40”表示“@”。如果你想要“%”到意味着“%”,你需要对其进行URL编码为“%25”。

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

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

答案 1 :(得分: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