つっこみ

つっこみ欄にコメントを記載して[つっこむ]ボタンを押してください。
お名前欄の記載は省略できます。

お名前 :
←ここのテキストボックスはスパム対策用なので何も入力しないでください
つっこみ :

[キャンセル]


つっこみ先の記事

・ 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 で統一しとくのが無難かなーと思います。


■この記事への permanent link URL(下にいくほどファイルサイズが大きくなります)
  http://toriyu.jp/hitorigoto/id2321.html
  http://toriyu.jp/hitorigoto/2008-10-31.html (1日分)
  http://toriyu.jp/hitorigoto/2008-10.html#id2321 (1ヶ月分)