2006年4月26日 (水曜日)

09:00:47 # Life manページとエンコーディング. Debian日本語のmanページはEUC-JPエンコーディングでファイルシステム上の/usr/share/man/ja/manX/XXX.X.gzに保存されている. 現在のlocale が UTF-8 などであっても,EUC-JPで保持しているデータを iconv で処理して UTF-8 にして表示している. その処理は man-db というプログラムが実施している.

UTF-8 で man ページを提供する方法もある./usr/share/man/ja_JP.UTF-8/などにおいておくと, locale が ja_JP.UTF-8の場合にはそこからファイルを見付けてくれる. man-db は ja_JP.UTF-8, ja_JP, ja の順番に検索してくれる. ただ, ja_JP.EUC-JP の場合には,/usr/share/man/ja_JP.UTF-8/はみてくれず, /usr/share/man/ja/ に EUC-JP の man ページをおいておく必要がある. これは,文字コード変換することが不可能なドキュメントのために例外的に設けてある機構で, たとえば,ユーロ通貨記号がEURに変換されてしまうことで,roffのコマンドになってしまうからうまくレンダリングされない, などといった事情を想定している.

Debianの現状としては日本語のmanページはEUC-JPで/usr/share/man/ja/以下に配置する,というのが正しい解. しかしながら,Fedora Core などでは, UTF-8 で manページのデータをおきはじめており,EUC-JPのものを見付けたら, レガシーだという警告を出すようにするらしい. これを見てupstreamの開発者が make install でインストールできる manページをUTF-8にしはじめるかもしれない(cf. netbsd). docbook-xslなどでmanページを生成する場合なども,utf-8がツールとの親和性が高く,また各言語を平等に扱う場合には utf-8のほうが扱いやすいため,今後 utf-8 から EUC-JP(を含む各国語のlegacy encoding)に変換する部分の処理が発生し 面倒になる可能性はある.今後の動向を見据えて,ファイルシステム上にmanpageをutf-8でインストールするサポートの追加は慎重に検討したほうがよいだろう.

以上,debian-users@jpblogとIRC(#debian-devel@oftc)で議論した結果のメモです. この調査は小林さんにきっかけをいただき,GyrosGeier, 武藤さんと議論しました.

Junichi Uekawa

$Id: dancer-diary.el,v 1.90 2006/01/31 11:16:16 dancer Exp $