当你现在写网页并且使用UTF-8时,什么是最好的?
实践-编码您的网页为UTF-8与或没有BOM?
然后..。任何类型文件的答案是什么,
不只是网页(不只是HTML文件)?
发布于 2015-01-03 17:33:42
来自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脚本的开头。
以及:
如果数据具有关联类型,例如数据库中的字段,则不需要BOM。特别是,如果文本数据流标记为UTF-16 BOM、UTF-16 or、UTF-32 BOM或UTF-32 or,则BOM既不需要也不允许。任何U+FEFF都将被解释为ZWNBSP。
BOM是不需要的,也不建议在UTF-8中使用,因为它除了标记UTF-8流的开始没有任何用途。然而,这并不是区分UTF-8的有效方法,因为BOM可以简单地被解析为其他编码格式中的字符。
BOM只应在数据以多字节格式(UTF-16/32)传输的上下文中使用,而不需要对endianness进行说明。你会使用这样的东西是超出我的范围,但这是唯一的情况下,BOM是必要的。
在生成和使用所述文本文件的代码中,区分文件中的文本编码(HTML、元标记等)或更好的文本编码。对于广泛分发的UTF-8文件,更常见的变体是没有BOM的.事实上,一些文本编辑器并不期望BOM,并且可能无法正确地解析流。
https://stackoverflow.com/questions/27757410
复制相似问题