浏览器对URL中UTF8编码字符的支持

6
如果我使用特殊的UTF8编码字符导航到以下URL,不同的Web浏览器会得到不同的结果:

http://example.com/lörickè

我在哪里可以找到支持此功能的浏览器和版本列表?是否有关于新版Microsoft Edge浏览器是否支持此功能的公告。

StackOverflow帖子介绍了上述问题,供感兴趣的人参考。

1个回答

15

浏览器地址栏显示的内容不一定是内部使用的内容。

如果你在Firefox中输入http://example.com/lörickè,它会像那样显示,但实际上会被百分号编码并变成http://example.com/l%C3%B6rick%C3%A8。这是为了提高可用性(或者,在不支持IRI的情况下,如HTTP/1.1中,将IRI转换为URI),以便用户不必输入正确的URL(带有百分号编码),并且不会因为看到这些神秘的部分而感到困惑。

你可以轻松地检查真正使用的内容,只需将地址栏中的URL复制粘贴到文本文档中

所以你的例子中的三个浏览器可能使用相同的URI(即百分号编码),但两个浏览器决定显示未编码的变量。


3
这正是发生的情况。向用户显示的内容并不保证就是实际传输给服务器或用于内部跟踪(缓存、收藏夹、历史记录等)的内容。 - Remy Lebeau
有没有一种方法可以基于用户代理字符串猜测浏览器是否支持这个功能?从而为他们提供具有完全重音字符的URL,但不提供给会显示百分比的浏览器。 - Neme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接