【问题标题】:Is BOM used for 2-byte Unicode text files?BOM 是否用于 2 字节 Unicode 文本文件?
【发布时间】:2012-10-08 14:48:58
【问题描述】:

我知道 BOM 用于 UTF-8 文件,但是对于每个字符都是 2 字节的文本文件,我是否也应该给它们添加字节顺序标记?

【问题讨论】:

    标签: unicode byte-order-mark


    【解决方案1】:

    BOM 是为 UCS-2 和 UTF-16 发明的,后来才被 Microsoft(然后是 XML)用于 UTF-8。想想名字:'字节顺序标记'。 UTF-8 只有一种可能的字节顺序,因此不需要 BOM 来显示顺序。相反,UTF-8 中 U+FEFF 的三字节序列已成为文件类型嗅探的 Unicode 签名。

    然而,尽管 XML 标准中包含了 UTF-8 BOM,Java 中早期版本的 XML 支持对 UTF-8 BOM 的响应并不好。此外,不能简单地将具有 BOM 的文件连接到另一个文件,因为 U+FEFF 不是文件中间的 BOM;它是 ZWNBSP。

    【讨论】:

    • 只是好奇为什么 Notepad++ 有带 BOM/不带 BOM 的编码(这就是我知道 BOM 用于 UTF-8 的原因)
    • 有些人讨厌 bom,因为它们无法连接文件。在文件中间,U+FEFF 不是 BOM,而是 ZWNJS。
    • 一些 XML 解析器/编辑器和其他处理 XML 的程序不期望 BOM 并在打开具有 BOM 的文件时失败。因此,理智的编辑器可以让您选择添加/删除 BOM 或保持当前文件的 BOM 状态不变。
    • 除了技术问题之外,不使用 UTF-8 BOM 的主要原因是在许多系统上,无论如何,UTF-8 是默认的文本编码,因此 BOM 不提供任何信息。
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 2011-01-27
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2014-03-04
    相关资源
    最近更新 更多