url被空格字符%20替换

时间:2017-01-24 06:50:27

标签: php

我有这个网址https://plus.google.com/+pitneybowes,其中+登录网址。我在我的代码锚定文件中使用了这个URL

但是当我运行我的代码并在浏览器中查看它时,它会被这个https://plus.google.com/%20pitneybowes

取代

我想要+登录网址。有必要。如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

根据URL specification%20+是转义空间的等效表示(ASCII 32)。浏览器是否显示%20+是否依赖于实现。

您的网站应该设计为同时处理两者。或者实际上,它不应该使用原始URL,而是使用未转义和解析的URL--在任何一种情况下都包含空格。

如果您真的在对您的网站进行编码,要求将空格明确地表示为+,并且这在某种程度上是关键任务,那么您就是在为兼容性问题做好准备。

如果您确实需要URL中的+(未转义),则其十六进制代码为%2B

因此

Print(UrlEncode("This is a test"));    =  "This+is+a+test"
                                       or "This%20is%20a%20test"

Print(UrlDecode("This%20is+a%20test")) =  "This is a test"

Print(UrlEncode("What is 2+2?")        =  "What+is+2%2B2%3F"

答案 1 :(得分:-1)

您可以使用urlencode对您的网址进行编码。解码将自动进行,并且可以从$ _GET获得值。