over 4 years ago

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

編輯器

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

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

找出 BOM

grep

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

find + grep

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

移除 BOM

find + sed

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

sed

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

Referece

http://stackoverflow.com/questions/204765/elegant-way-to-search-for-utf-8-files-with-bom
PHP 判斷/移除 BOM(UTF-8)

← DokuWiki Plugin 小整理 Ubuntu 13.04 安裝 gcin 加上 嘸蝦米 →
 
comments powered by Disqus