来自W3C:
如果HTML文档不是以BOM开头,并且Content-Type元数据未明确给出其编码,并且该文档不是iframe srcdoc文档,则使用的字符编码必须是ASCII兼容的字符编码
那么如何添加BOM表示文档是以UTF16编码的?
答案 0 :(得分:2)
您可以通过在数据的最开头插入U + FEFF(根据定义,这是BOM)来添加BOM。你如何做到这一点取决于你如何生成UTF-16或UTF-32。
“重新描述”的问题“我如何能够显示utf-16 / utf-32编码的html文档?”真的是一个不同的,简短的回答是:大多数情况下,你没有。几乎没有理由在HTML文档中使用utf-16或utf-32。这些建议显然有利于utf-8。但是如果你使用utf-16或utf-32,那么你应该主要处理Content-Type
标题,另外包含一个BOM。
答案 1 :(得分:1)
提示在这里:
其内容类型元数据
明确指出其编码
您应该尝试(通过HTTP标头或等等)。为了插入BOM,您的代码编辑器应该能够这样做。
另请参阅W3C规范:
大多数时候你最好选择UTF-8作为你的 编码。 [...]这样做的一个原因是有特殊规则 用于声明UTF-16页面的编码。
您是否使用基于元素的声明,您应该确保 在UTF-16的最开始,你总是有一个字节顺序标记 编码文件。实际上,这是文档内声明。
此外,如果您的网页编码为UTF-16,请不要申报 文件为“UTF-16BE”或“UTF-16LE”,仅使用“UTF-16”。字节顺序 文件开头的标记将指示是否编码 scheme是little-endian或big-endian。 (这是因为内容 显式编码为,例如,UTF-16BE不应使用字节顺序标记; 但HTML5需要UTF-16编码页面的字节顺序标记。)
http://www.w3.org/International/questions/qa-html-encoding-declarations#utf16
答案 2 :(得分:0)
字节顺序掩码是十六进制序列,可以放在任何文件的开头 它与html /其他网络语言无关。
十六进制编辑器是添加它的好方法。
尽管UTF-32提供了固定长度编码的优势,但某些浏览器/电子邮件客户端却放弃了对它的支持。
注意:UTF-16主要用于Windows。