覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Vi で BOMを取り除く

Windows環境でUTF-8のテキストファイルを作成すると、
先頭に BOM(Byte Order Mark)が付いてくることがもれなくです。

Windows環境に閉じてれば問題にはなりませんが、
Linux環境等にそのファイルを持ち込むとBOMによる弊害が生じることもあります。

そのため、Linux環境等では BOM を取り除いた状態にしたいケースがあります。
そのようなファイルが大量にある場合には有用ではありませんが、自分が今扱っている1、2ファイルのみであれば
Vi を使って簡単にとりのぞくことができます。


BOM付きのUTF-8のファイルを用意した状態で

yuki$ file bom.txt
bom.txt: UTF-8 Unicode (with BOM) text

(一応 file コマンドで BOM付きであることを確認しています)


対象ファイルを普通に Vi で開くと BOMの情報については何もわかりませんが

aaa


vi -b {ファイル名} のバイナリモードで開くと以下のようになっています。

<feff>aaa

先頭の <feff> がBOMなので、この <feff> を Viでの編集操作で普通に削除して保存します。
そうすると BOM無しのファイルになります。