問題來源:vim
inux下處理windows utf8文件,發現vim頭會多一個<feff>,從而致使正常的文件解析出錯。windows
通常默認建立的文件都是ANSI編碼的。用記事本打開這個文件,點"另存爲",最下面有個"編碼(Encoding)"能夠選擇,裏面有"ANSI,utf8"等選項。編碼
問題知識:spa
所謂 BOM,全稱是Byte Order Mark,它是一個Unicode字符,一般出如今文本的開頭,用來標識字節序 (Big/Little Endian),除此之外還能夠標識編碼(UTF-8/16/32),若是出如今文本中間,則解釋爲zero width no-break space。code
<feff>被稱做BOM(Byte Order Mark)的不可見字符,是Unicode用來標識內部編碼的排列方式的,ip
在UTF-1六、UTF-32編碼裏它是必需的,而在UTF-8>裏是可選的。utf-8
問題解決:刪除BOMget
1.刪除方法Viit
#設置UTF-8編碼
:set fileencoding=utf-8
#添加BOM
:set bomb
#刪除BOM
:set nobomb
#查詢BOM
:set bomb?
2.檢測 BOMB
grep -I -r -l $'\xEF\xBB\xBF' /path
grep -I -r -l $'\xEF\xBB\xBF' file | xargs sed -i 's/\xEF\xBB\xBF//'