CygwinのrsyncでバックアップしたものをMinGWのrsyncでリストアしようとするとファイル名が…

日本語のファイル名が化けます。Cygwinはローカルファイル名のエンコードがUTF-8だと思ってます(正しい)が、MinGWはなぜかShift_JISだと思って勝手に変換しているようです。rsyncに–iconv UTF-8,Shift_JISとオプションをつけてShift_JISに戻してみると、一部のファイルは正しく復元できたり、一部はできなかったり。convmvを使っても復旧できるファイルとできないファイルがある。

NTFSのエンコーディングはUnicodeでしたっけ? とにかくMinGWを使ってファイルをopenするときに、渡された文字列がShift_JISだと思って勝手に変換をかけているような感じ。設定されている環境変数を見ても、LANGやLC_ALLその他もろもろ、エンコーディングを設定するようなものはなさそう。

結局、面倒だからcygwin入れました。

I/O性能(ここではrsyncによるリストアのスループット)も実はCygwinのほうが微妙に良い(!)ような印象です。MinGW期待してたけど、捨てようかな…

コメントを残す

メールアドレスが公開されることはありません。