什么是BOM(byte-order mark)(转贴)
2014-03-31 15:46
381 查看
什么是BOM
BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。下表列出了不同编码所对应的BOM。
BOM Encoding
EF BB BF UTF-8
FE FF UTF-16 (big-endian)
FF FE UTF-16 (little-endian)
00 00 FE FF UTF-32 (big-endian)
FF FE 00 00 UTF-32 (little-endian)
BOM的来历
为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字符开头。这作为一个“特征符”或“字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序。
Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。
不同的编辑工具对BOM的处理也各不相同。使用Windows自带的记事本将文件保存为UTF-8编码的时候,记事本会自动在文件开头插入BOM(虽然BOM对UTF-8来说并不是必须的),但是editplus就不会这样做。
http://en.wikipedia.org/wiki/Byte_order_mark
相关文章推荐
- 什么是BOM(byte-order mark)(转贴)
- 什么是BOM(byte-order mark)(ZZ)
- 什么是BOM(byte-order mark)
- BOM(Byte-order Mark)
- 该死的BOM(byte-order mark)
- 什么是BOM(Byte Order Mark)?
- BOM(byte-order mark)
- BOM(byte-order mark):字节顺序标记
- (转贴)什么是socket
- 你该学什么程序语言?[转贴:蔡学墉]
- [转贴]看看比尔·盖茨在关注什么(比尔·盖茨在哈佛大学毕业典礼上的演讲)
- 什么是XML(转贴)
- [转贴]阅读优秀的开源软件代码能够带给我们什么?
- 【转贴】什么是操作系统 什么是数据结构
- 什么叫做蓝牙技术(转贴)
- JavaScript的BOM模型中,有哪些主要对象,各有什么作用?
- java中byte是什么类型,和int有什么区别
- 数据库时代的终结意味着什么?【转贴】看后惊出一身汗啊!!!!!
- [转贴]分贝是个什么东西?(好东东)
- utf 8无bom和utf 8什么区别