ひとりごと

新しい記事:[2322]  古い記事:[2320] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2008/10/31 (金)

・ UTF-8 への道

勢いで変えちゃった漢字コードですが、だいぶまともに使えるようになったのでいじったところの覚え書き。

ロケールについて
.cshrc に下記を追加。
setenv LC_CTYPE ja_JP.UTF-8
FreeBSDでは環境変数 LANG に ja_JP.eucJP を指定しておけば一部のコマンドについて 日本語のEUCで表示することができますが、 ja_JP.UTF-8 を入れても日本語にはならないようです。だけど普通はありがた迷惑なので LC_CTYPE だけ入れとけば大丈夫なはず。
vim
~/.vimrc に下記をいれておく。
set encoding=utf-8
set fileencodings=utf-8,euc-jp,iso-2022-jp,ucs2le,ucs-2,cp932
set ambiwidth=double
2行目を入れてててもSJISのファイルを読み込むと文字化けしていますので、そのときは ':e ++enc=sjis' で直接エンコードを指定しています。よく使う UTF-8 と EUC-JP については化けないようなのでとりあえずこれでOK。三行目は入れておかないと '■' とか '→' を1バイト文字として扱うので編集時にずれるみたいです。
日本語マニュアル
jman で日本語マニュアルを表示する際、整形処理が EUC-JP と決めうちして変換してる割に ロケールで UTF-8 を指定していると変換がうまくいかないようです。ということで、その時だけ環境変数を変えるべく .cshrc に下記を追加。
alias man 'env LC_CTYPE=ja_JP.eucJP \jman'
alias jman 'env LC_CTYPE=ja_JP.eucJP \jman'
PAGERに lv を設定していれば、lv が LC_CTYPE を見てくれないことが幸いしてうまく動きます(^_^)。将来的に lv が LC_CTYPE を参照するようになれば、環境変数 PAGER も一緒に指定する必要がでてくるでしょう。
mnews

MLの購読とかスパム判定されたメールの確認とかに使っているのですが、とっくに開発終了しているソフトウェアなので UTF-8 には対応していません。他にも「入出力がEUC-JPでないといけないソフトウェア」がありそうなのですが、そういう場合は screen の文字変換を使ってみるとよさそうです。

[~/.cshrc]
alias mnews 'env LC_CTYPE=ja_JP.eucJP screen -c ~/screen-euc \mnews'
[~/screen-euc]
encoding eucJP UTF-8
残念ながら screen 環境に入って上記コマンドを実行してもうまく動きません。一時的にscreenの設定をごにょごにょすると動くのかもしれませんが、screen は root で makeworld とか portupgrade するときぐらいしか使わないので特に対策はしていません。
lessの代わり
lvを使います。.cshrcに下記を追加。
alias less lv
setenv PAGER lv
setenv LV '-Ou8'

という感じで今は何不自由なく UTF-8 で使えております。既存システムの漢字コードを入れ替えるのは何かと大変ですが、新たに構築するのであれば UTF-8 で統一しとくのが無難かなーと思います。

[つっこみ]

新しい記事:[2322]  古い記事:[2320] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)