nkf

  • 投稿日:
  • by
  • カテゴリ:

nkf

パッケージが充実していてほとんど何でもありそうに見えるCygwinでも、存在しないものはビルドしなければなりません。まあ、別に、普通にビルドできる場合がほとんどですけれど。

日本人なら大体お世話になったことがあるであろう、漢字コード変換を行なうnkfもそんなものの一つ。どういうわけかCygwinには含まれていません。

nkfはSourceForgeにプロジェクトがあり、そこでソースも配布されていますので、普通にそれを持ってきて、展開して、ビルド、インストールで使えるようになります。

% tar –zxf nkf-2.1.2.tar.gz
% cd nkf-2.1.2
% make

% make test    ←これはperlが必要になります。

% make install

Cygwinにはiconvという類似のパッケージがあるのですが、iconvは文字コードの自動判別はしてくれないので、入力文字コードと出力文字コードとを自分で正しくしていしてやらないと動作しません。

たとえば、Windows版のJDKに含まれるjavahを実行した場合などに,出力されてくるShift_JISのエラーをCygterm上で表示させるには、

% javah –jni –classpath bin/classes jp.wildtree.android.app.hhsadventure.ZGraphicDrawable |& iconv –f Shift_JIS –t UTF-8

のようにしなければなりません。が、nkfなら、単に "|& nkf" としてやればOKです。要するにタイプしなければいけない文字数が減るのです。

さて、それはさておき、Cygwinは日本語のmanpageはEUC-JPでエンコードされていることが期待されていますが、nkfに付属してくるものはISO-2022-JPになっています。インストールする際にMakefileを次のように書き換えちゃえばいいかと思います。

-44: cp –f nkf.1j $(prefix)/man/ja/man1/nkf.1
+44: ./nkf -e nkf.1j > $(prefix)/man/ja/man1/nkf.1

こうしておいてから、make installすれば、適切な日本語manpageがインストールされます。ご参考まで。