ファイルの文字コードを確認するのには何が適切なのか簡単に調べてみたところ、Linuxのfileコマンドを見つけたので書き留めます。
fileコマンド
file [option] filename
コマンド名とファイル名で最低限コマンドが扱えます。
オプション等の詳しい仕様についてはオンラインマニュアルを確認してください。
file(1): determine file type – Linux man page
ファイルの準備
fileコマンドを確認するために、UTF-8(BOM無)とUTF-8(BOM有)を作成し、fileコマンドで確認してみます。
ファイルの作成はUTF-8(BOM無)をコピーして、EmacsのC-X RET f(set-buffer-file-coding-system)で”utf-8-with-signature”を指定して変換しました。
fileコマンドの実行
.cファイルを対象に実行してみると、ファイルタイプと文字コード、改行コードを確認することが出来ました。
BOMの有無までしっかりと判別してくれていることが確認できます。
ちなみにこのfileコマンドはファイルの中身を参照してファイルタイプを判別しているとのこと。
さっきと同じような要領で、png形式の画像をコピーして片方の拡張子をjpgに書き換えたファイルを用意してみました。
2つのファイルを対象にfileコマンドを実行すると、データタイプや画像の解像度、カラーサイズ、インターレスの有無が確認できます。
拡張子を書き換えたファイルもデータの中身からpngファイルと判断してくれています。
BOMの有無を確認するには便利
今回は面倒なBOMの有無を確認するためにfileコマンドを利用しましたが、これほどお手軽なコマンドならBOMの有無だけではなく文字コードの確認にも便利かもしれません。
今までUTF-8のBOMの有無を確認するためにVisual Studioに取り込んで、実行プログラムが文字化けするかどうかで確認していましたが、本当に便利なコマンドだと思います。
情報元のatmarkITさんの方ではもっと詳しい情報が記載されているので、興味のある方はそちらを確認してみてください。
参考サイト
Linux基本コマンドTips(12):fileコマンド――ファイル形式を確認する – @IT