去除 UTF-8 文件 BOM 头

什么是 BOM?

BOM 全称是 Byte Order Mark(字节顺序标记)。出现在文本文件头部,Unicode 编码标准中用于标识文件是采用哪种格式的编码。比如:当用记事本保存一个以 UTF-8 编码的文件时,会自动在文件开始自动插入三个不可见字符“0xEF 0xBB 0xBF”,但是通常情况下不需要这个头部来识别文件的编码,在PHP代码中存在BOM,会导致网页的首行存在预料外的间隙。

去除 BOM 方法

【方法一】打开 vim

键入 :set bomb,回车,显示 bomb 表示文件有 BOM,nobom 表示文件无 BOM;

键入 :set nobomb,并回车。

【方法二】打开 notepad++

依次点击菜单栏【格式】-【以 UTF-8 无 BOM 格式编码】,并保存。

【方法三】sed 命令

utf-8 编码文件的 BOM 是 “0xEF 0xBB 0xBF”(更多 BOM 请点击),针对 utf-8 编码文件去掉 BOM:

// 生成新文件
sed '1s/^xEFxBBxBF//' < orig.txt > new.txt

// 直接覆盖老文件
sed -i '1s/^xEFxBBxBF//' orig.txt

参考链接:

How can I remove the BOM from a UTF-8 file?(https://unix.stackexchange.com/questions/381230/how-can-i-remove-the-bom-from-a-utf-8-file

原文地址:https://www.cnblogs.com/imzhi/p/10267897.html