【问题标题】:The url get replaced by space character %20url 被空格字符 %20 替换
【发布时间】:2017-01-24 06:50:26
【问题描述】:

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

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

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

【问题讨论】:

  • 您能提供给我们您当前的代码吗
  • 我们能看到代码吗?
  • 我使用 window.location.href="plus.google.com/+pitneybowes" 调用了 url,+ 号被替换为 %20
  • 您可以使用plus.google.com/%2Bpitneybowes 而不是添加文字+,因为这只是一个破坏事物的邀请。

标签: php


【解决方案1】:

根据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"

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 2014-08-19
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多