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

时间:2013-07-20 00:52:06

标签: javascript node.js character-encoding

我一直在使用节点fs.readFileSync(),传递"utf8"作为读取输入的编码。当文件包含UTF8中的BOM character(0xEF 0xBF 0xBB)时,它将其转换为字节序列0xFE 0xFF,而不是Unicode编码。

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

1 个答案:

答案 0 :(得分:2)

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