10

我正在研究从 URL 显示(使可读)字符的要求。

  • 当我使用谷歌浏览器时,它会以中文显示参数——即使它们被编码为 UTF-8。

  • 当我使用 Mozilla Firefox 时,它会以中文显示参数——即使它们被编码为 UTF-8。

  • 当我使用 Internet Explorer 时,它会显示以 UTF-8 编码的参数。

注意 URL 被编码为 UTF-8;我知道,因为当我从他们三个复制 URL 并将其粘贴到 Notepad++ 时,他们三个显示以下内容:

/%E6%89%93%E5%BC%80%E7%9B%AE%E5%BD%95/%E7%9B%B8%E6%9C%BA/%E6%95%B0%E7%A0% 81%E7%9B%B8%E6%9C%BA/%E5%B0%8F%E5%9E%8B%E6%95%B0%E7%A0%81%E7%9B%B8%E6%9C%BA /PowerShot-A480/p/1934793

难道 Mozilla Firefox 和 Google Chrome 的人有这种改进,可以使编码的字符串可读,也许 IE 的人不支持?或者,有什么方法可以用 IE 激活它?

顺便说一句...转到查看 >> 编码 >> Unicode (UTF-8) 会处理页面内的文本,但不会对 URL 中的文本产生任何影响。

任何帮助将不胜感激!

4

1 回答 1

12

我写了一篇关于Internet Explorer 不显示非 ASCII 字符的解码版本并使用 IRI解决问题的博客文章。

截止到今天,我们的情况如下:

  1. HTML5 支持IRI,即支持 Unicode 字符的URI
  2. HTTP 不支持IRI,但所有主要浏览器都负责将IRI转换为有效(编码)URI以检索指定的资源(页面)。
  3. IE在锚标签的属性中支持IRIhref ,并在其地址栏中正确显示它们,就像您手动输入 URL 时一样(键盘 ;-))。
  4. 如果您选择对您的IRI进行百分比编码从而使其成为URI,则 IE 不会将该URI解码回IRI

因此,您可以尝试以下方法:

  1. 使用 UTF-8 保存 HTML 文件。这允许您将任何 Unicode 字符插入其中。
  2. 不要在 HTML 页面的链接中对 URL 进行百分比编码只需使用这样的链接:<a href="http://zh.wikipedia.org/wiki/亦思巴奚兵乱">亦思巴奚兵乱&lt;/a>

在 W3C: An Introduction to Multilingual Web Addresses中也可以找到关于该主题的精彩文章。

于 2013-10-23T13:24:22.717 回答