如何编码/解码国际URL以便在PHP中呈现

时间:2015-03-26 14:35:16

标签: php urlencode url-encoding

我很难找到一个解决方案(内置或库)解决包含ASCII范围之外的百分比编码字符的URL的问题。

据我了解RFC 3986,我们不应该将URL整体解码,而不首先将其分解为组件。但是,这似乎是浏览器对“国际”字符所做的事情。例如,如果我将此网址粘贴到Google Chrome的地址栏中:

http://www.example.com/?x=7%26z%3D6&q=%C3%A9

它呈现为:

http://www.example.com/?x=7%26z%3D6&q = E

那么如何在不实现自己的url解码器的情况下使用PHP呢?内置功能(即urldecode)将返回:

http://www.example.com/?x=7&z=6&q = E

哪个错误(因为现在有3个查询参数)但是预期(因为urldecode不是设计用于整个网址)

我希望能够在我的应用程序中显示链接时复制浏览器行为:在href属性中我将使用百分比编码形式,但在锚本身中我将使用“漂亮”形式。

0 个答案:

没有答案