2009年10月22日木曜日

一括してファイルの文字コードを検出する方法



Windows環境でファイルを操作し、Linux環境へファイルをアップロードする時に


意図せず、Shift_JIS ファイルをアップして文字化けしてしまったことありませんか?


実行時に簡単に分かる箇所ならテストすれば気がつきますが


アスキーコードだけで書かれた関数やクラスのファイルだったりすると、


エンコード問題が出ることは少ないので見落としがちです。


いちいちファイルを開いて確認するのは大変なので、一括して文字コードを確認する方法がないかと調べていたらありました。


以下のコマンドでOK。



find -name '*.php' | xargs nkf --guess


ファイル名と文字コードの一覧が表示されます。





ちなみに、一括して文字コードを変換することもできます。



# UTF-8 に変換
find -name '*.php' | xargs nkf --overwrite -w

# EUC-JP に変換
find -name '*.php' | xargs nkf --overwrite -e





【参考】 文字コード変換コマンドnkfの使い方まとめ