Linux でのテーブル変更方法

Linuxでは、/usr/share/i18n/charmaps/UTF-8.gz が文字幅情報を含んでいるテーブルである。これを書き換えればよい。

直接書き換えるのは危険なので、新たにUTF-8-CJK.gzを作成する。手順は以下の通り。

  1. samples/UTF-8-CJK を用意する。
  2. gzip で圧縮する。
  3. rootになり、cp -p UTF-8-CJK.gz /usr/share/i18n/charmaps/ を実行する。
  4. localedef -i ja_JP -c -f UTF-8-CJK ja_JP.UTF-8-CJK を実行する。

このあと、使用するlocaleを変更する。 setenv LANG ja_JP.utf8cjk とする。

なお、UTF-8そのものを入れ替えてもうまくいかない。理由は不明だが、データが アーカイブされている様子。

注意点

FreeBSDではうまくいった、U2184-U2189は未定義のため、localedefではエラーとなる模様。

参考URL

* http://d.hatena.ne.jp/macks/20090304http://d.hatena.ne.jp/macks/20090305