Unicode

如何檢查 UTF-8 文本文件是否有 BOM?

  • February 20, 2022

如何從命令行檢查 UTF-8 文本文件是否有BOM ?

file命令向我顯示:

UTF-8 Unicode text

但是,我不知道這是否意味著文件中沒有 BOM。

我正在使用 Ubuntu 12.04。

file會告訴你是否有BOM。你可以簡單地測試它:

printf '\ufeff...\n' | file -
/dev/stdin: UTF-8 Unicode (with BOM) text

一些 shell,例如ashdash有一個printf不支持的內置函式\u,在這種情況下,您需要printf從 GNU coreutils 中使用,例如/usr/bin/printf.


注意:根據file更新日誌,這個功能在 2007 年就已經存在。所以,這應該適用於任何目前的機器。

如果你執行stat fileName它應該給你準確的三個字元。當我在編輯器中打開文件時,我什麼也看不到。所以注意到文件大小為 3 讓我清楚地知道它有一個 BOM。

此外,這裡的文章對我來說很有幫助。

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES

引用自:https://unix.stackexchange.com/questions/170775