nkf の インストールから利用まで ( cygwin , ubuntu )


時々Shift-JISからUTF-8に文字コードを変換したい、ということがあるのですが、その度に、「あれ、どうやるんだっけ?」「そうか、nkfか...あれ、入ってない、どうやって入れるんだ」「入ったけど、これ、どうやって使うんだっけ」となっているので簡潔にまとめました。

尚、試した環境は、CygwinとUbuntuです。この記事を書く前に改めてCygwinでは稼働確認をしました。(cygwinでmakeコマンドが入っていない場合はapt-cygなり、setup.exe起動するなりして入れていただければと思います。)

インストール方法

手順としては、ダウンロード、展開、ディレクトリ変更、ビルド、インストール、です。
1. Download Files List - nkf Network Kanji Filter - OSDNからtar.gzファイルをダウンロードする(この記事の執筆時点では最新がnkf-2.1.3.tar.gz)
2. tar xvfz nkf-2.1.3.tar.gzにて展開(nkf-以下のバージョンは適宜読み替え、以下同様)
3. cd nkf-2.1.3 ディレクトリ移動します
4. make ビルドして
5. make install インストール

一発で済ますなら下記ですね。
tar xvfz nkf-2.1.3.tar.gz;cd nkf-2.1.3;make;make install

利用方法(ファイルをUTF-8 w/o BOMにする)

  1. find . -type f -name "*.java" | xargs nkf -g カレントフォルダ以下のJavaファイルの文字コードを知る(何を変換しようとしているか見ておくと安心感ありますよね)
    • Javaに限らず、すべてのファイル、ということであればfind . -type f | xargs nkf -g
  2. find . -type f -name "*.java" | xargs nkf -w -Lu --overwrite 行末の改行もWindows形式からUnix形式に置き換えています。不要なら-Luを取り除く

終わりです。結果を確認するならもう一度、利用方法 1.のコマンドを実行してみてください。

その他

nkfの記事はたくさんネット上にあるのに、どうも自分の環境ではその通りに動かないとかかゆいところに手が届かないとか、そういうことが多く、その差分を調査するのも面倒だったので、私がうまくいった例を記載しています。

この記事に辿り着いている方は既にご存知かと思いますが、下記リンクなどもオプションについて簡潔に述べていて参考になるかと思います。(ただ、残念ながら2つ目の記事のやり方は、私の環境ではうまくいきませんでしたが)