BOM (byte order mark) 一個萬國碼的標記, 不會顯示在你的銀幕上, 但會讓你的程式死光光. 清掉 BOM 留給你的程式一條活路

編輯器

多數的編輯器都可以設定 編碼為 UTF-8 no BOM

vim 的設定, 可以參考 remove BOM character using vim

找出 BOM

grep

1
$ grep -rl $'\xEF\xBB\xBF' .

find + grep

1
$ find /path/to/dir/ -type f -print  -exec hd -n 3 {} \;  | grep -1 "ef bb bf"

移除 BOM

find + sed

1
$ find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;

sed

1
$ sed -i '1 s/^\xef\xbb\xbf//' ./*

Referece