Cygwinのls -lで文字化けする話

以前、いきなりCygwinがUTF-8環境になって何だこりゃって思ったことがあったのですが、どうやらWindowsではなくcygwin1.dll 1.7以降の変更が原因らしいです。

そっちかーということで、LANG=ja_JP.SJIS の設定をcygterm.cfgに入れて対応。.bash_profileでもいいけど。ただ、相変わらずls -l のグループ名の「なし」が化けるんだよね。うーん、どうしたもんかと思ってたら、/etc/group に登録されてる名前を使っていたらしい。これがUTF-8だと、いくらLANGをShift JISにしても意味ないわな。てっきりWindowsのファイル属性なんだとばかり思っていた・・・。意外とCygwinは内部で閉じている!

おおお素晴らしい!日本語が入ってくるのがいつも気持ち悪かったので嬉しいな。ついでに /etc/passwd ユーザー名も変えて、root:systemにしておいた。

うーむ、これで言語周りはカンペキだな。大体、CygwinだけUTF-8にしたって、肝心のwindowssjisなんだから色んなところで齟齬が出てくるんだ。いちいちwindows nativeコマンドの戻りをnkf -wするエイリアスを作るのは面倒なんだ。

utf-8ベースで楽ちんだな、と思ったのは、Perlの内部文字列をdecodeしないでそのまま出力できることくらいかな。