Web2.0を意識したシステム構築ではXMLを扱う頻度が増え、同時にデザインテンプレートやスクリプトなども文字コードをUTF-8に統一したいというシーンが出てくるのではないでしょうか。それ以外にも文字コードをディレクトリ単位で変換したいシーンがあると思います。
世の中には文字コード変換専用のフリーツールが多数存在しますが、ここではUNIXコマンドによる文字コード変換を紹介します。
1.特定ファイルの文字コードを変換する
文字コードを変換する為のコマンド[nkf]を紹介します。 nkfは入力ファイルの文字コードを自動的に認識して指定の文字コードに出力してくれます。勿論、入力ファイルの文字コードを指定する事もできます。また、改行コードなどの指定も可能です。
代表的なnkfの文字コード・改行コードの出力オプションを紹介します
-j JISコードの文字コードを出力する -e EUCコードの文字コードを出力する -s Shift-JISの文字コードを出力する -w UTF-8の文字コードを出力する -Lu LFの改行コードを出力する -Lw CRLFの改行コードを出力する -Lm CRの改行コードを出力する
などがあります。
詳細は
$man nkf
や
$nkf --help
をご参照ください
文字コードがEUCのexample.phpファイルをUTF-8変換して出力する。
$nkf -E -w example.php > example_utf8.php
example.phpの文字コードを自動判別してUTF-8・改行コードをLFに変換して出力する。
$nkf -w -Lu example.php > example_utf8.php
これまでは、上記のように文字コード変換を行ったファイルを、わざわざ標準出力より別名で保存していたと思います。そんなビジネスパーソンの皆様に朗報があります。
2.overwriteオプション
実はnkfコマンドにはoverwriteというオプションがあります。
example.phpをUTF-8に変換して書き換える
$nkf --overwrite -w example.php
ここまで解ってしまえば後は簡単。
3.ディレクトリ以下のPHPファイルを全てUTF-8に変換する
$find -name '*.php' | xargs nkf --overwrite -w
アイディア次第でWindowsツールいらずな所がUNIXコマンドの良いところでもありますね。