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

[debian-users:14367] glibc2.1 locale



山下だいすけです。

以前、[13623]以下で、glibc2.1 にしたらロケールが云々..
という話がありましたよね。
locale-ja をインストールし直したら、解決したよという話だったと思います。

ところが、家では wcsmbs の一連の関数が上手く wc <-> mbc に変換してくれなく
なった事に気づいたので、さっき info や gdb で色々調べてみました。

で、wcsmbs 変換が出来るようになったので、お知らせします。
# この ML のログを見る限り未解決だと思いますが、
# well known な事だったらご免なさい。

原因は、glibc2.1 の wcsmbs が EUC とか、ujis というキャラクタマップ
を知らないからというだけでした。
glibc2.1.1 がデフォルトで知っている日本語 EUC の名前は、

EUCJP
CSEUCPKDFMTJAPANESE   # typo していたが..
OSF00030010
EUC-JP

だけでした(EUC-JP 以外は EUC-JP の alias)。

この様なキャラクタマップ変換の定義は、/usr/lib/gconv/gconv-modules
にあります。
これに ujis を EUC-JP の alias として、定義してやればいいようです。

alias   UJIS//                 EUC-JP//

こういう一行をこのファイルに書いてやれば(874 行目あたりが吉)、
LANG=ja_JP.ujis で、上手く EUC -> UCS-4(?) に変換してくれることを
確認しました。別に大文字小文字はどっちでもいいようです。

勿論、逆に ja_JP.EUC-JP ロケールを作っても OK でした。


locale-ja か libc6 で、この設定をやってくれるようになると、
嬉しいのではないでしょうか。

因に、私のところの libc6* パッケージリストは、以下の通りです。
ii  libc6         2.1.1-0.1
pn  libc6-dbg     <none>
ii  libc6-dev     2.1.1-0.1
pn  libc6-doc     <none>
ii  libc6-pic     2.1.1-0.1
ii  libc6-prof    2.1.1-0.1
un  libc6-wcsmbs  <none>
un  libc6.1       <none>


では。

    *-=-=-=-*  Daisuke Yamashita  *-=-=-=-*
              yamad@xxxxxxxxxxxxx
     http://village.infoweb.ne.jp/%7Edais/
    *=-=-=-=*                     *=-=-=-=*