Html UTF-8是否有BOM?

Html UTF-8是否有BOM?,html,css,encoding,Html,Css,Encoding,当你现在写网页并且使用UTF-8时,什么是最好的 实践-将页面编码为UTF-8(带或不带BOM) 然后。。。对于任何类型的文件, 不仅仅针对网页(即不仅仅针对HTML文件) 从Unicode: 问:UTF-8数据流能否包含BOM字符(UTF-8格式)?如果是,那么我仍然可以假设剩余的UTF-8字节是以大端顺序排列的吗 答:是的,UTF-8可以包含BOM表。但是,字节流的结束性没有区别。UTF-8始终具有相同的字节顺序。初始BOM仅用作签名-表示未标记的文本文件在UTF-8中。请注意,UTF-8编

当你现在写网页并且使用UTF-8时,什么是最好的
实践-将页面编码为UTF-8(带或不带BOM)

然后。。。对于任何类型的文件,
不仅仅针对网页(即不仅仅针对HTML文件)

从Unicode:

问:UTF-8数据流能否包含BOM字符(UTF-8格式)?如果是,那么我仍然可以假设剩余的UTF-8字节是以大端顺序排列的吗

答:是的,UTF-8可以包含BOM表。但是,字节流的结束性没有区别。UTF-8始终具有相同的字节顺序。初始BOM仅用作签名-表示未标记的文本文件在UTF-8中。请注意,UTF-8编码数据的某些收件人不希望收到BOM。如果在8位环境中透明地使用UTF-8,则BOM的使用将干扰在开始时需要特定ASCII字符的任何协议或文件格式,例如在Unix shell脚本开始时使用的“#!”

以及:

如果数据具有关联类型,例如数据库中的字段,则不需要BOM表。特别是,如果文本数据流标记为UTF-16BE、UTF-16LE、UTF-32BE或UTF-32LE,则既不需要也不允许使用BOM。任何U+FEFF都将被解释为ZWNBSP

在UTF-8中不需要也不建议使用BOM,因为它除了用于标记UTF-8流的开始之外,没有任何用途。然而,这并不是区分UTF-8的有效方法,因为BOM可能只是以其他编码格式解析为字符

BOM应仅在数据以多字节格式(UTF-16/32)传输且无端点规范的情况下使用。我无法理解您会使用这样的东西,但这是唯一需要BOM的情况


在生成和使用所述文本文件的代码中,区分文件内的文本编码(HTML元标记等)或更好的编码。对于广泛分布的UTF-8文件,更常见的变体是不带BOM的。事实上,一些文本编辑器不希望看到BOM,可能无法正确解析流。

感谢您提供了这一非常详细和权威的答案。@CPUTerminator“但为了表示UTF流的开始”>>>嗯,是的,我正朝着这个方向思考,也就是说,正是为了这个目的。