ファイルの文字コードを一括変換するコマンド

webサイトなどを構築すると、複数のファイルの文字コードを変換したくなります。多くのLinuxではその機能を備えたコマンドが標準で用意されています。

nkfコマンドでまとめて文字コードを変換

nkf コマンドを使うことによって文字コード簡単に変換することができます。使い方は次のとおりです。

$nkf -w 変換前のファイル > 変換後のファイル

nkfの後ろに「-w」というオプションが付いていますが、ここで出力したい(変換先の)文字コードを指定しています。

出力の文字コードのオプションは次のとおりです。

  • -j   jisコード
  • -s  shift_jis
  • -e  euc-jp
  • -w utf-8(BOMなし)

利用可能な全ての文字コードを確認したい場合は、manなどで確認してください。

新しいファイルを出力するのではなく、既存のファイル変換して上書きする場合は「–overwrite 」オプションを使います。下のコマンドは、ディレクトリ内全てのファイルの文字コードをUTF-8に一括で変換する方法です。

find | xargs nkf --overwrite -w

ちなみに、 xargsは標準出力の文字列を空白、改行で区切りを判断し、コマンドの後ろにくっつけてくれるというものです。