URL中的空格和非拉丁字符

时间:2013-03-27 12:33:15

标签: php url encoding pretty-urls

我希望我的网址尽可能具有人类可读性和美观性。我注意到URL中甚至有空格字符。将http://en.wikipedia.org/wiki/Prince of Persiahttp://en.wikipedia.org/wiki/سنڌي复制到您的borowers地址栏,它就可以了!

这些也是如此:

<a href='http://en.wikipedia.org/wiki/Prince of Persia'> Foo </a>
<a href='http://en.wikipedia.org/wiki/سنڌي'> Bar </a>

在网址中使用A-Z以外的Unicode字母有多安全?我的网址很简单,没有任何标点符号,类似于维基百科链接。

对我而言,它无效或无效,我只希望它有效!

(实际上我将使用+代替“”,而我主要关注的是Unicode文字)

以上在所有常见浏览器中都能轻松实现吗?

2 个答案:

答案 0 :(得分:0)

这完全取决于浏览器,因为它只是一个UI噱头。使用的实际网址是已编码的网址,如果您尝试复制粘贴它,您会看到剪贴板中包含URL编码的网址。

答案 1 :(得分:0)

当你打电话给“波斯的http://en.wikipedia.org/wiki/Prince”时,你的浏览器就会在场景背后发挥作用。 Space char转换为%20转义格式并发送到Web服务器。 http://en.wikipedia.org/wiki/Prince%20of%20Persia

然而,维基百科还没有回复你的真实页面。您的浏览器会收到带有下划线格式的重定向回复。然后您的浏览器下载真实内容。它的维基百科服务器业务逻辑,用于清理可见网址。 HTTP / 1.0 301永久移动 地点:http://en.wikipedia.org/wiki/Prince_of_Persia

你只是让你的浏览器和互联网更加努力: - )

任何unicode信件都没问题,在发送到网络浏览器之前,它们是%XX转义的。这是目标Web服务器看到的真实URL格式。 http://en.wikipedia.org/wiki/%D8%B3%D9%86%DA%8C%D9%8A

由Web服务器知道如何处理UTF8 unicode转义,大多数现代服务器都知道该怎么做。智能浏览器可以将%XX转义转换为地址栏字段中的可见字母。当您以编程方式进行http调用时,您需要知道转义是如何工作的。