まず、
BOM 付き UTF-8 ファイルを作成しない
事が肝要であるが、手遅れになっている状況は多々あるので、
確認および駆逐する方法について具体的に述べる。
確認する方法
$ head -1 <ファイル名> | od -t x1
ファイルの 1 行目を 16 進数でダンプする。先頭が ef bb bf で始まっていれば BOM 付きである。
駆逐する方法
$ sed -i -s -e '1s/^\xef\xbb\xbf//' <ファイル名>
head 、 od および、sed は、どれも GNU Linux システムに標準でインストールされている。
Windows の場合は WSL をインストールすれば使用できる。
なお、BOMがファイルの先頭にあるうちに使用すること。