为什么 Firefox 会禁用某些网站的“字符编码”菜单?

为什么 Firefox 会禁用某些网站的“字符编码”菜单?

对于某些网站,我注意到 Firefox 的“查看/字符编码”菜单被禁用,为什么?

可以启用它吗?

答案1

这是由于修复了错误 234628当视图>字符编码菜单不起作用或不需要时将其禁用(例如 XML)

具体来说,如果你看看评论#63

至于存在 UTF-8 BOM 的情况,让 BOM 优先于菜单是有意义的

物料清单用于识别 Unicode 编码文档中的字节顺序。

给出的理由可概括如下:

  • Gecko(Firefox 的渲染引擎)不支持任何其他将 BOM 渲染为有效 HTML 开头(<html<!DOCTYPE等等)的编码。

  • 其他主流浏览器(IE6+、基于 WebKit 的 [Chrome 等])也有同样的问题。例如,如果您尝试更改 Chrome 上的编码,它只会重置回 UTF-8。

  • 否则可能会扰乱表单输入。


您提供的示例页面以三个 UTF-8 BOM 字节开头。如果您保存页面并在十六进制编辑器中打开 HTML 文件,就会看到这一点。BOM 明确将其标识为 UTF-8 文档,以任何其他编码打开它都不会产生正确的 HTML 页面。

显示 BOM 的十六进制编辑器的屏幕截图

您可以0xEF 0xBB 0xBF在左侧看到 BOM,如维基百科所述。右侧显示看起来像什么当呈现为 ANSI/CP1252

如果您确实想要,您可以保存文件,删除有问题的 BOM 并打开文件。或者您可以设置代理(Fiddler2 非常适合此操作),它将在文件到达浏览器之前拦截并修改文件。但是,这些并不是很好的解决方案,而且很可能只会造成更多问题。如果您遇到编码问题,最好的办法是联系网站维护人员。无论如何,我们都应该尽可能转向 Unicode,而不是使用较旧且更有限的编码标准。

答案2

这可能是一个错误。Chromium有类似的问题几年前。

相关内容