天天看點

Linux下給檔案添加BOM頭

至于BOM是什麼,這裡就不解釋了,百科解釋的很詳細, BOM - 位元組順序标記(ByteOrderMark)

簡單來說,BOM主要是為了解決Linux檔案在Windows上亂碼的問題

主要有以下幾個場景:

  1. 在linux上生成一個csv檔案,在excel中打開,亂碼
  2. 在linux生成一個txt檔案,在windows上用記事本打開,亂碼

linux上是無視BOM的,在linux上生成的檔案也是不帶BOM,盡管不帶BOM的utf-8才是标準,但是為了能在windows上打開檔案不亂嗎,我們就需要手動添加BOM頭

用法:

# 在report.csv檔案中添加BOM頭

printf '\xEF\xBB\xBF' > report_new.csv
cat report.csv >> report_new.csv
           

需要注意的是:

windows記事本預設會給檔案添加BOM頭,盡管這幾個字元正常情況肉眼不可見,但是在程式處理這些檔案時,這些字元是能被識别到的,是以經常會出現看似正常的檔案,程式處理卻報錯,以及window上看似正确的腳本在Linux下執行卻報錯。

是以建議使用sublime,而不是windows自帶的記事本來編輯檔案。