-
UTF+BOM比UTF无BOM多了三个字节前缀:0xEF0xBB0xBF,有这三个字节前缀的文本或字符串,程序可以自动判断它为utf-8格式,并按照utf-8格式来解析文本或字符串,否则,一个文本或者字符串在未知编码的情况下,需要按照字符编码规范去一个个验证
-
BOM: Byte Order Mark,就是字节序标记
-
UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支持UTF-16,UTF-32才加上的
-
BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。
char szUTF_8BOM[4] = {char(0xEF), char(0xBB), char(0xBF), char(0)};
std::ofstream f(not_select_as_true_file, ios::out);
f << szUTF_8BOM;