[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:46426] Re: Manpage encoding: UTF-8 or EUC-JP?



こんにちは,

> 
> 一足早くからUTF-8化しているFedoraCoreではどうやっているのかな、と
> 開発者に聞いてみたところ、
> 
> ・manページの推奨エンコーディングはUTF-8で統一
> ・manコマンドの内部で iconv -f UTF-8 -t UTF-8 してエラーが出るかどうかを
>   調べる
> ・エラーが出たらjaの場合、legacyなEUC-JPと判断。legacyな旨の警告も表示
> 

googleで検索すると,FedoreCore4 まではすくなくとも,UTF-8で統一した影
響でEUC-JPではmanが化けるという問題があったようですね.同じ間違いはお
かしたくないところです.

本件,簡単にサマリーをまとめました.


http://www.netfort.gr.jp/~dancer/diary/daily/2006-Apr-26.html.ja#2006-Apr-26-09:00:47

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にしはじめるか
もしれない. docbook-xslなどでmanページを生成する場合なども,utf-8がツー
ルとの親和性が高く,また各言語を平等に扱う場合には utf-8のほうが扱いや
すいため,今後 utf-8 から EUC-JP(を含む各国語のlegacy encoding)に変換
する部分の処理が発生し 面倒になる可能性はある.今後の動向を見据えて,
ファイルシステム上にmanpageをutf-8でインストールするサポートの追加は慎
重に検討したほうがよいだろう.

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


上川
-- 
dancer@{debian.org,netfort.gr.jp}   Debian Project