System.IO.ZipArchive zipped only UTF-8 encoding | Microsoft Connect
昨日書いた話はちょっと間違っていました。Windowsのエクスプローラーでのzipフォルダーの挙動は画面表示文字ではなく、「Unicode対応でないプログラムの現在の言語」の挙動に依存しました(社本さんありがとう!)。コントロールパネルの「地域と言語」にあるこの設定です。
逆に言えば、ここだけ設定しておけば、表示言語が英語であってもエクスプローラーの圧縮フォルダーは日本語Windows 7と同じ挙動をします。
つまりちゃんと日本語ファイル名も圧縮できます。BCLチームの人もやっと理解してくれたようで、zipファイルにUnicodeフラグが立っていないとシステムロケール(つまり日本語の場合はMS932)で展開すればいいよね?みたいなことを書いてくれている…はずです(^^;。長かった…。でもここからはどうなるか継続して監視したい。
WindowsのシェルもWindows 8(仮)のベータに間に合わないかもしれないけど、ベータが公開されたら確認したい。あと、できれば現在サポートされているすべてのWindowsのエクスプローラーがUTF-8対応してほしいですね(無理かなー?)。
過去の関連日記
Windowsと.NET 4.5のZipArchiveクラスの互換性問題その4 - 新日々此何有哉
System.IO.ZipArchiveクラスの互換性問題その3 - 新日々此何有哉
System.IO.ZipArchiveクラスで日本語が使えない話その2 - 新日々此何有哉
.NET 4.5のSystem.IO.Compression.ZipArchiveクラスと日本語版WindowsのZipフォルダー - 新日々此何有哉