跳到主要内容
uencoder

BOM

BOM(字节顺序标记)是 Unicode 字符 U+FEFF,置于文本流开头用于指示编码形式与字节序。

用途

在 UTF-16/UTF-32 中指示大端或小端字节序,在 UTF-8 中作为编码签名(虽 UTF-8 字节序无关)。

机制

U+FEFF 经编码形式转为字节:UTF-8 为 EF BB BF,UTF-16LE 为 FF FE,UTF-16BE 为 FE FF。解码器读取前几字节匹配 BOM 确定编码。U+FEFF 本身是零宽不换行空格,故也可作签名。

用例

  • 文本文件编码自动检测
  • 跨平台文本交换
  • CSV/TSF 文件编码标识
  • 数据库导出文件编码

示例

  • 输入
    UTF-8 BOM
    输出
    EF BB BF

    The first three bytes of a file

常见错误

A UTF-8 BOM being rejected by a JSON parser (RFC 8259 forbids it)
Do not use a BOM in JSON files

相关词条

相关工具

参考链接