网址编码“。”返回“。”而不是“%2e”

时间:2016-10-07 19:25:16

标签: http

我对url encode / decode有疑问。 当我url解码“%2E”时,我得到“。”。 但是当我url编码“。”时,我得到“。”

我在http://www.url-encode-decode.com/这样的网站上试试。 你能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

“”。是允许在未编码形式的url中使用的字符之一(完整列表here)。因此没有理由将其编码为十六进制表示。这就是你得到的原因:

“”。 - >编码 - > “”

另一方面,每个字符都可以使用“%”语法替换为其十六进制表示。这就是你得到的原因:

“%2E” - >解码 - > “”

因此,您将以未编码的形式为url中允许的每个字符获取此行为:

“a” - >编码 - > “一”

“%61” - >解码 - > “一”

这是google.com的有效网址:

http://%67%6F%6F%67%6C%65%2E%63%6F%6D