#unity/日常积累
UTF-8 with BOM(Byte Order Mark)是在 UTF-8 编码文件的开头加上特殊的字节序标记,用于指示该文件的编码方式。BOM 的字节序列为 0xEF 0xBB 0xBF,这是 Unicode 的零宽度非换行空格字符,用作 UTF 编码文件的标记。
BOM 是一个 Unicode 字符(U+FEFF),用于标识文件的字节顺序和编码。BOM 本身并不是文件内容的一部分,而是帮助文本编辑器、编译器和其他工具正确识别文件的编码。
在编程语言中,通常可以指定编码为 UTF-8 with BOM 或 UTF-8 without BOM。例如在 C# 中:
using System.IO;
using System.Text;
// 写入 UTF-8 with BOM
File.WriteAllText("file_with_bom.txt", "Hello, World!", new UTF8Encoding(true));
// 写入 UTF-8 without BOM
File.WriteAllText("file_without_bom.txt", "Hello, World!", new UTF8Encoding(false));
new UTF8Encoding(true):指定写入 UTF-8 with BOM。new UTF8Encoding(false):指定写入 UTF-8 without BOM。在文件开头读取字节并检查是否存在 BOM 标记的字节序列(0xEF, 0xBB, 0xBF)即可判断文件是否包含 BOM。