Node.js为什么将BOM字符转换为0xFE 0xFF

Why does Node.js convert BOM character to 0xFE 0xFF?

本文关键字:转换 0xFE 0xFF 字符 BOM js 为什么 Node      更新时间:2023-09-26

我一直在处理节点的fs.readFileSync(),将"utf8"作为读取输入的编码。当文件包含UTF8中的BOM字符(0xEF 0xBF 0xBB)时,它会将其转换为字节序列0xFE 0xFF,即Unicode编码。

它为什么要这样做?为什么不在UTF8中保留BOM的原始序列?

BOM是字符U+FEFF。0xEF 0xBB 0xBF是其UTF-8表示形式。但是,通过使用utf8编码进行读取,您就可以解码UTF-8。在这一点上,谈论"字节序列"变得毫无意义;您有一个字符串,其中第一个是U+FEFF。