Windows上のGitで日本語ファイル名やコミット文が扱える、とかいうので2012年に話題になったっぽいですが、その副作用でsshなんかでもUTF-8の入出力が可能になっています。
何があったかは下記参照。
http://osdir.com/ml/msysgit/2013-09/msg00048.html
msys-1.0.dll(Cygwinでいうcygwin1.dll)内で対応されているので、これにリンクされてるバイナリのコンソールの入出力は基本UTF-8で動くことになっている模様。
コンソールの入出力はUTF-16とUTF-8の変換になっててサロゲートペア非対応とか書いてある。
パッチを見る限りはコンソール入力をUnicodeとみなして、UTF-8に変換しているみたい。
出力はどうなってるんだろうこれ。
今のWindowsは、システム内部ではUnicode(UTF16,CP1200)になっているのだけど、日本語Windowsでは表層に現れる文字列はShift_JIS(CP932)だったりするんで、そのへんの変換にシステムのコードページを使ったりするはず。
なんで、chcp 65001とかすると理屈ではUTF-8で入出力するんだとおもうんだけど、入力がダメなんだよな。
minttyだとローカルのlsで文字化けして、ckwではしてなかったんだけど、minttyではutf-16をutf-8と思って処理してるからかなと。
そんなわけで、msysGit以外のmsys-1.0.dllを消すと幸せになれる気が、したんだけど、どうもだめっぽい。えー。
こんな感じ
MinGWのbashでLANG=ja_JP.UTF-8なホストにssh接続した時
msysGitのbashの場合