Scientific Linuxのscreenで文字化けした話
会社の開発環境を移行中です。Mac miniの VirtualBox 上の CentOS 5.6 が、ディスクが論理的におかしなことになっているらしく、触っていると不規則にホストOSの MacOS X ごとお亡くなりになってくれやがるので、何でもテスト用に用意してるXenServerに新しくVMを作ることにしました。
今回の OS は Scientific Linux 6.0 にしてみてます。ひと通りセットアップが終わったところで、emacs でファイルを編集するとどうも日本語が化けている。lv で見てみてもやはり化けている。screen なのが悪いのかと思い、screen を終了して lv で見ると化けてない。おお、screen お前のせいだったのか。
.screenrc と /etc/screenrc を新旧環境で比べてみても差はないし何だろう、と色々試してようやく原因を発見。
歴史的経緯により、私の .screenrc には
defkanji euc
という記述があります。つまり表示は EUC-JP にしているわけね。ファイルの文字コードは、最近はほとんど UTF-8 で、一部 EUC-JP なものが残ってる。ターミナルの入出力を EUC-JP にするために上記の設定をしていたわけです。あ、ちなみにターミナルソフトは Mac の iTerm で ssh でログインしてる。
ふと思い立って、上記の設定をコメントアウトしてみたら、ちゃんと文字化けせずに表示されるようになりました。詳しい原因は不明。