5. 未分類項目

5.1. WindowsでUTF-8エンコードされたZIPファイルを作成したい

Windowsでは、標準の方法(Windows 10: 右クリック→「送る」→「圧縮フォルダー」、Windows 11: 右クリック→「ZIPファイルに圧縮する」)でZIPファイルを作成すると、フォルダ名およびファイル名をローカルコードページ(日本語版ではCP932。Shift_JISとほぼ同義)でエンコードする仕様となっています。しかしMoodleをはじめとする多くのWebシステムでは、ZIP内のファイル名がUTF-8でエンコードされていることを前提としているため、Windowsで作成したZIPファイルをUTF-8として無理矢理デコードした結果、フォルダ名やファイル名が文字化けしてしまうことがよくあります。(Windows自身およびmacOSでは自動認識するため、互いには文字化けは見えません)

外部のシステムにアップロードしたり、外部に提供するZIPファイルを作成する場合は、文字化けを防ぐためにUTF-8でエンコードしたZIPファイルを作成する必要があったり、その方が望ましい場合があります。そのような機能をもつWindows用のZIP圧縮アプリとして、以下では7-ZipとPeaZipを紹介します。

7-Zip

広く利用されています(配付サイト, 日本語配付サイト)。現時点では7-Zipのインストーラの発行元は「不明」と表示されます。正規サイトからダウンロードしたものであれば開発者の意図に反するコードが埋め込まれているリスクは小さいと思われます。他のサイトからはダウンロードしないように注意してください。ソースコードは公開されていますので、必要であれば独自にビルドすることも可能と思われます。

注意: 作者はロシア国籍のようです。商用・非商用を問わずどのようなソフトウェアも同様ですが、最近の情勢による脆弱性対応の遅延や開発停止等のリスクがありうる点にはご注意ください。

デフォルトでは可能な限りローカルコードページでエンコードする設定になっていますが、強制的にUTF-8でエンコードするには、対象のフォルダを右クリックして(Windows11では「その他のオプションを表示」→)「7-Zip」→「圧縮…」で「パラメーター」欄に「cu=on」と記入しておけば、以降この設定が保存されます。また「アーカイブ形式」はデフォルトで「7z」ですが、これも「zip」に変更して設定してください。(パラメーターの設定項目はドキュメント参照)

PeaZip

近年知られるようになってきました(公式サイト)。現時点では7-Zipのインストーラの発行元は「不明」と表示されます。正規サイトからダウンロードしたものであれば開発者の意図に反するコードが埋め込まれているリスクは小さいと思われます。他のサイトからはダウンロードしないようにするか、そうでない場合は必ず正規サイトに記載されているハッシュ値を確認してください。ソースコードは公開されていますので、必要であれば独自にビルドすることも可能と思われます。

インストール時に、デフォルトでは各種アーカイブファイル形式に関連づけをしてしまいますが、混乱しないようにすべてチェックをはずす(「None of the above group」を2箇所選択する)ことも検討してください。

UI言語はデフォルトでは英語ですが、「スタート」メニュー→「すべてのアプリ」→「PeaZip」→「PeaZip」により、PeaZipのファイルマネージャを開き、「Options」→「Settings」の「General」タブ内の「Localization」で「ja.txt」を選択することにより、日本語UIに変更できます。

ZIP圧縮時はファイル名はデフォルトで強制的にUTF-8でエンコードされます。対象のフォルダを右クリックして(Windows11では「その他のオプションを表示」→)「PeaZip」→「Add to ZIP(ZIP に追加)」によりZIPファイルが作成されます。エンコード方法などは上記の設定画面で変更可能です。