浏览器支持 URL 中的 UTF8 编码字符
Posted
技术标签:
【中文标题】浏览器支持 URL 中的 UTF8 编码字符【英文标题】:Browser Support for UTF8 Encoded Characters in URL's 【发布时间】:2015-07-11 08:48:28 【问题描述】:如果我使用特殊的 UTF8 编码字符导航到以下 URL,我会在 Web 浏览器中得到不同的结果:
Firefox 37 - 显示正确的 URL,如上。 Chrome 42 - 显示正确的 URL,如上。 Edge - 显示正确的 URL,如上。 IE 11 - 显示百分比编码的 URL http://example.com/l%c3%b6rick%c3%a8/http://example.com/lörickè
我在哪里可以找到支持此功能的浏览器和版本列表,是否有任何关于新 Microsoft Edge 浏览器是否支持此功能的公告。
This *** 帖子为感兴趣的人重点介绍了上述问题。
【问题讨论】:
【参考方案1】:浏览器地址栏中显示的不一定是内部使用的。
如果您在 Firefox 中输入 http://example.com/lörickè
,它会像这样显示,但它实际上会被百分比编码并变成 http://example.com/l%C3%B6rick%C3%A8
。这是出于可用性原因(或者,如果不支持 IRI,例如在 HTTP/1.1 中,将 IRI 转换为 URI),因此用户不必输入正确的 URL(使用百分比编码),并且不要不要被这些神秘的部分弄糊涂了。
您可以轻松查看copy-pasting the URL from the address bar into a text document 真正使用的内容。
因此,您示例中的三个浏览器可能使用相同的 URI(即百分比编码),但两个浏览器决定改为显示未编码的变体。
【讨论】:
这正是发生的事情。不保证向用户显示的内容是实际传输到服务器或用于内部跟踪(缓存、收藏夹、历史等)。 有没有办法根据用户代理字符串猜测浏览器是否支持?潜在地为他们提供带有完全重音字符的 URL,但不提供给会显示百分比的浏览器。以上是关于浏览器支持 URL 中的 UTF8 编码字符的主要内容,如果未能解决你的问题,请参考以下文章