パッケージが充実していてほとんど何でもありそうに見える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がインストールされます。ご参考まで。
コメント