如何将BOM添加到HTML文档

时间:2013-11-17 15:55:34

标签: html unicode utf-16 byte-order-mark

来自W3C

  

如果HTML文档不是以BOM开头,并且Content-Type元数据未明确给出其编码,并且该文档不是iframe srcdoc文档,则使用的字符编码必须是ASCII兼容的字符编码

那么如何添加BOM表示文档是以UTF16编码的?

3 个答案:

答案 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。