文字化けしない Msys Git 導入法
なぜか2バイト文字ガン無視で作られたGitちゃん。そんなGitをWindows環境で使うと、簡単に文字化けする。そこをなんとか、ようやく日本語に対応しつつあるMsysGitを使って文字化けしないように導入する方法をどうぞ。
MsysGitは最近(2012年現在)、ようやくUTF-8(UTF-8N)環境に対応したと謳っているWindows向けのGitクライアント。自分はこのMsysGitでGitを使っている。だが実際、使ってみると文字化けしたので、ちょっと工夫が必要なよう。また前提として、ファイル名はMS932、中身はUTF-8で書くとする。
MsysGitを入れる
まずは普通にMsysGitを入れる。ここのDownloadから「Git-1.7.XX-previewXXXXXXXX.exe」とかをダウンロードして、実行しよう。
インストール中に聞かれる設定項目はほとんどたいしたことないので、お好きに(ほとんどそのままでいいと思う)。ただし、「User a TrueType font in all console windows (not only for Git Bash)」だけはチェックをつけないことをオススメする。
Msysが文字化けするのでレジストリを書き換える
そのままだとなぜかMsysを立ち上げてcat(Shift-JIS)したりすると日本語が文字化けする。正確には、フォントが英文フォントなために、日本語を表示しようとしても「□□□□」のような感じになってしまい、表示されない。これを解消するにはレジストリをいじろう。
お決まりのごとく、「新しいタスクの実行...」なんかから「regedit.exe」を起動して「HKEY_CURRENT_USER/Console/Git Bash」の「FaceName」を「Lucida Console」から「*MS ゴシック」に書き換えよう。これはMsysGitの不具合に近いと思う。(参考)
lsが文字化けする
lsが文字化けするのはおそらく不具合でもなんでもなくてそういう仕様。これはまぁ、想像つくと思うけど、「alias ls='ls --show-control-chars'」すればよい。GitBashを立ち上げて、.bashrcにこんな感じで書く。
$ vim ~/.bashrc
alias ls='ls --show-control-chars'
nkfを入れる
cat等でShift-JISしか表示できなくて不便なので、nkfを入れてUTF-8等も表示できるようにしよう。
nkfはこことかから持ってくればいい。解凍した中の「vc2005/win32(98,Me,NT,2000,XP,Vista,7)ISO-2022-JP/nkf.exe」を「C:/Program Files (x86)/Git/bin/」(Windows7 64bitの場合)などに入れれば使えるようになる。
GIT EDITORを変える
Gitには、コミットメッセージをUTF-8で入れるという厳然とした決まりがある(というかほかの環境で化ける)ので、UTF-8で保存できるエディタに変えておこう。自分はTeraPadが好きなので、TeraPadで文字コード指定書き込みしている。ほかにもVimとかでもUTF-8で保存できさえすればお好きなものを。
$ git config --global core.editor 'terapad'
ちなみに、エディタを使わなくていい便利な「$ git commit -m hogemessage」という方法だと文字化けするので、ASCII文字以外を使うときは封印。
Git GUIの表示エンコードをUTF-8にする
Git GUIがファイル差分とかをしつこくShift-JISで表示しようとしてくるので、UTF-8にするよう設定しよう。
$ git config --global gui.encoding utf-8
完成
以上で文字コード関連は大体網羅しているはず…。なにか見逃しがあったら教えてください。