我很难找到一个解决方案(内置或库)解决包含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属性中我将使用百分比编码形式,但在锚本身中我将使用“漂亮”形式。