Answers:
这是由于对Bug 234628进行了修复,当它无效/不必要(例如XML)时,禁用了View> Character Coding菜单。
具体来说,如果您查看第63条评论:
对于存在UTF-8 BOM的情况,让BOM优先于菜单是有意义的
的BOM被用来识别一个Unicode编码的文件中的字节顺序。
给出的原因可以总结为:
Gecko(Firefox的呈现引擎)不支持将BOM呈现为有效HTML开头(<html
或其他)的任何其他编码<!DOCTYPE
。
其他主要浏览器(IE6 +,基于WebKit的[Chrome等])也做同样的事情。例如,如果您尝试在Chrome上更改编码,则只需将其重置为UTF-8。
否则可能会混淆表单输入。
您提供的示例页面以三个UTF-8 BOM字节开头。如果保存页面并在十六进制编辑器中打开HTML文件,则可以看到此信息。BOM肯定地将其标识为UTF-8文档,并且以任何其他编码打开它都不会产生正确的HTML页面。
如Wikipedia所述,您可以0xEF
0xBB
0xBF
在左侧看到BOM 。在右侧,它显示为ANSI / CP1252时的外观。
如果确实需要,可以保存文件,剥离有问题的BOM,然后打开文件。或者,您可以设置一个代理(Fiddler2很好用),该代理将在文件到达浏览器之前对其进行拦截和修改。但是,这些并不是真正好的解决方案,并且可能会带来更多问题。如果遇到编码问题,最好的办法是与网站维护者联系。无论如何,我们都应该尽可能地改用Unicode,而不是使用更旧,更有限的编码标准。