我一直在使用节点fs.readFileSync()
,传递"utf8"
作为读取输入的编码。当文件包含UTF8中的BOM character(0xEF 0xBF 0xBB)时,它将其转换为字节序列0xFE 0xFF,而不是Unicode编码。
为什么这样做?为什么不在UTF8中保留BOM的原始序列?
答案 0 :(得分:2)
BOM是字符U + FEFF。 0xEF 0xBB 0xBF是其UTF-8表示。但是通过使用utf8的编码进行读取,您将解码 UTF-8。在这一点上,谈论“字节序列”变得毫无意义;你有一串字符,第一个是U + FEFF。