Linux CLI 對 UTF-8 檔案增加 BOM 怎麼做

BOM (byte-order mark) 中文叫:位元組順序記號,主要是 Windows 標示這是 UTF-8、UTF-16.. 來判別使用的。

想要讓 Windows 的 Excel 開啟 UTF-8 的檔案自動選對編碼(不會亂碼),就需要增加 UTF-8 的 BOM。(不然就得用 插入資料 選擇編碼的方式)

Linux CLI 對 UTF-8 檔案增加 BOM 怎麼做

BOM 在各種編碼會有各種代表,詳見:位元組順序記號

  • UTF-8 的 BOM 是 EF BB BF
  • UTF-16(BE) 的 BOM 是 FE FF
  • UTF-16(LE) 的 BOM 是 FF FE
  • 其它 UTF-32.. 更多的,在自行參考上述連結。

於 Linux CLI 要對檔案增加 UTF-8 的 BOM,可以使用 sed 達成。(BOM 一定要在檔案開頭第一行的位置)

  • 單一檔案 sed 增加 BOM 範例
    1. sed -i '1s/^\(\xef\xbb\xbf\)\?/\xef\xbb\xbf/' test.csv
    2. file test.csv # UTF-8 Unicode (with BOM) text
  • sed -i '1s/^\(\xef\xbb\xbf\)\?/\xef\xbb\xbf/' *.csv # 對所有 csv 都增加
  • 註:此 sed 寫法是沒有 BOM 就新增寫入,有 BOM 就再蓋掉 BOM,所以 BOM 不會重複新增

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料