System.IO.ZipArchive zipped only UTF-8 encoding | Microsoft Connect
ZipArchive Constructor (Stream, ZipArchiveMode, Boolean, Encoding) (System.IO.Compression)
実際の動作はまだ確認していませんが、フィードバックが通りました!いやぁうれしい。connectで支援コメントしていただいた方、voteしてくださった方ありがとうございます。通した本人が言うのもなんですが、当面残存するWindows XPからWindows 7までの互換性のために仕方ない機能で、できれば使わなくなる日が来ればいいなとも思っています。とくにWindows 7にはDesign ChangeでUTF-8のZIPに対応してほしい(読み込みだけでいいので)という思いが強いです。
今まで.NET Frameworkでzipを扱うクラスがほしいときって、ユーザー操作中心のWinZipみたいなアーカイバツールなどではなくて、プログラムで適当にファイルを固めて送信/受信するときだと思うんですよ。ユーザーが操作するアーカイバツールではどんなファイル受け入れるかわからないので、日本人が意図して作った日本語を含むファイル名を圧縮して、XPやVista/Windows 7などのほかの環境とやりとりするとわかっているときだけ使ってほしい。Word 2007以降でいうときのdoc形式みたいなものといえばいいでしょうか。
プログラムが生成した複数のファイルを格納するなんてときのファイル名はいわゆるANKのみで扱えばこういう問題も出ないですし、XPのシェアがいつまでかはわかりませんが、少なくなれば…むずかしいか。
.NET Framework 4.5アプリケーションはWindows XPをサポートしないようなので、この機能を使って作ったプログラムの心配するのはWindows 7とVistaですね。Windows 7はまだ変更してくれる余地があるかもしれないけど、延長サポートに入ったVistaは無理なので、じっと我慢ですね。