テック & ツール
MacからWindowsにZIPを送るときに確認したいこと|文字化け・不要ファイル対策
Macでは普通に見えていたZIPでも、Windows側ではファイル名が崩れたり、見慣れないファイルが増えたりします。送る側がMacだと気づきにくいので、共有前に一度見てから送ったほうが止まりにくいです。
ここでは、実際に引っかかりやすいポイントを2つに絞ります。ひとつは日本語ファイル名、もうひとつはMac特有の不要ファイルです。
先に見たい点
Finderの「圧縮」はMac同士なら問題が出にくい一方、Windowsに渡すときはファイル名と不要ファイルで詰まりやすくなります。これは壊れているというより、OSごとの前提が違うためです。
1. ファイル名が文字化けする(NFD問題)
最大の問題は「濁点・半濁点」の扱いです。Macのファイルシステム(HFS+/APFS)は、ファイル名を保存する際に「正規化(NFD)」という処理を自動的に行います。
| OS / 形式 | 「ガ」のデータ構造 | Windowsでの見え方 |
|---|---|---|
| Mac (NFD) | カ (U+30AB) + ゛ (U+3099) | カ゛(分離する) |
| Windows (NFC) | ガ (U+30AC) | ガ(正常) |
ZIP仕様(APPNOTE)では、UTF-8フラグが立っている場合でも、この「結合文字」の正規化までは規定されていません。 そのため、Macで圧縮した(NFDのままの)ZIPを、NFCを期待するWindowsのエクスプローラーで開くと文字が分離する現象が起きます。
最近のWindowsでもUTF-8対応が進んでいますが、受け取り側の解凍ソフトや環境によっては、依然として文字化けが発生します。
対策
半角英数字に寄せられるなら、それがいちばん確実です。日本語ファイル名を残す場合は、手元にWindows環境があるなら一度展開して、どう見えるか先に確かめておくほうが早いです。
2. 隠しファイルの混入
Macのフォルダには、ユーザーに見えない管理ファイルが潜んでいます。Finder標準の「圧縮」を使うと、これらがそのままZIPに含まれ、Windowsで解凍したときに可視化されてしまいます。
.DS_Store— Finderのフォルダ表示設定(詳しい解説と削除方法)__MACOSX— リソースフォークの退避フォルダ(正体と対策の解説)._ファイル名— AppleDouble形式の属性データ
送る前に自分で見る順番
手で確認するなら、毎回同じ順番にしたほうが見落としが出にくいです。
- 送るフォルダ名とファイル名を見直す。日本語が多い場合は、とくにWindows側で崩れないか意識する。
find target_folder -name ".DS_Store" -deleteで不要ファイルを消す。- 必要なら
find target_folder -name "._*" -deleteも実行する。 zip -r -X output.zip target_folderで圧縮する。zipinfo output.zipでZIPの中身を一度見る。
毎回同じ順番で作りたい場合
ファイル名、不要ファイル、ZIPの中身を毎回見直すなら、その順番ごと固定しておくと、どこを見ればいいか毎回迷わずに済みます。
Pon!とZip! では、Windowsに渡す前提の ZIP を同じ順番で作れます。
止まりやすいのはこの2点
MacからWindowsにZIPを送るときは、ファイル名と隠しファイルの2点で止まりやすいです。
送る前に一度中身を見れば、崩れたファイル名や見慣れないファイルは送り手側で拾えます。日本語ファイル名が多い案件では、この確認を入れてから送るほうが先方に聞き返されにくいです。