水たまりは希望を写している

Windows & macOS 間の圧縮ファイルのやりとりに ZIP ではなく 7z はいかが? というお話

「7z ファイル」のテキスト。

Windows & macOS の ZIP ファイル問題

普段パソコンでファイルをやりとりするとき、ZIP ファイルに圧縮して渡すことが多いだろう。メニューから「圧縮」などの項目を選ぶだけで、すぐに圧縮ファイルを作ることができる。

しかし、避けて通れないのが「文字化け」の問題である。Windows と macOS、お互いが圧縮した日本語などを含む ZIP ファイルを展開すると、もれなく文字化けを引き起こしてしまう

これは Windows と macOS での文字コードと、ZIP の仕様に起因する問題である。Windows (日本語) では、ZIP を圧縮する際 Shift-JIS (を拡張した CP932) を使用し、macOS では、UTF-8 (厳密には UTF-8-Mac) を使用する。そして、ZIP の仕様上、使用できる文字コードは、システム標準の文字コードか UTF-8 のどちらかしか使用できない。そのため、ZIP ファイルを展開しようとするときは、展開しようとするシステム標準の文字コードを使用することになる。そのためお互いの OS の間で文字化けが発生する。

2025 年になってもなおこの問題が残り続けているのは、なんとも納得できないね。

ZIP の代わりに 7z はいかが?

そこで、「そもそも ZIP を使うのをやめれば良いのでは?」という結論に至る。そこで、ZIP の代わりになるものとして 7z を提案したい。

なぜ 7z?

Unicode なので文字化けしない

7z ファイルの規格として、Unicode を使うことが決まっている。そのため、環境によって展開の結果が異なるという問題が発生しない (たぶん)。

Windows も macOS も GUI 上で展開可能

最近の Windows と macOS なら、エクスプローラーや Finder 上で、特に追加のアプリを導入する必要なく 7z ファイルを展開することができる

まずこの時点で、ほぼすべての Windows / macOS ユーザーは 7z ファイルを標準で展開できると考えてよい。しかし 7z というファイルを見たことがないという人も多いと思うので、

「7z ファイルは圧縮ファイルです」

「7z ファイルは Windows の標準機能で展開できます」

「7z ファイルは追加でアプリをインストールすることなく展開できます」

ということを強く主張していきたいね。

Windows なら GUI 上で圧縮もできる! macOS もちょっと設定すれば OK

最近の Windows なら、エクスプローラー上で ZIP ファイルを作るのと同じように 7z ファイルに圧縮することができる

macOS では残念ながら Finder 上で 7z ファイルを作ることはできない。ただ、簡単なコマンドで 7z ファイルに圧縮することができる。

$ tar -acf "アーカイブ.7z" folder/

コマンドが面倒だ、という人でも安心してほしい、macOS のショートカット機能を使えば、Finder から簡単に呼び出すことができる。別でブログ記事を作ったので詳しくはその記事を参照。

デメリットはあるか?

7z ファイルを知らない人に無言で渡すのはちょっと大変かもしれない。

あとは単純に、圧縮に少し時間が掛かる。エクスプローラーだと ZIP の 3 倍くらい遅い。7z の大元でもある 7-Zip の方が速いので、同じ 7z でも実装で速度差が出ている。遅い分圧縮率は高いが。

余談など

  • ZIP ファイル自体も UTF-8 サポートはある。あるんだけど、なぜか普及していない……
  • Windows も macOS も、7z ファイルの作成は bsdtar (libarchive) を使用している。なんならエクスプローラーで操作できる前から bsdtar は収録されていた
  • Windows の ZIP ファイル展開機能は「UTF-8 である」というフラグが設定されていれば、UTF-8 の ZIP ファイルを文字化けせずに展開することができる。macOS→Windows なら、macOS が適切にフラグを設定していれば文字化けせず済んでいた話ではある (UTF-8-Mac なのであえてしていない?)
  • 空のアーカイブ作成はご容赦願います

この記事を書いた人

AioiLight

Web とか Android とかをやってる人。アニメ・ゲームが好きなはずなのに消費しきれない毎日。

Twitter (@aioilight)