zipがUTF8ファイル名のフラグがついているかどうかを確認したい


MacでZIP圧縮すると、Windowsで化けるという話はよく聞きます。

直接の原因は、MacではUTF8でファイル名を保存するけど、WindowsはデフォルトのSJISとして解釈しちゃうから。

ただ、Gmailで添付ファイルを一括ダウンロードするときにはzipアーカイブしているんだけどこれはMacもWindowsも両方カバーできている。不思議。

どうもファイル名はUTF8ですよって示すフラグがあるらしい。
http://tmtms.hatenablog.com/entry/2017/04/05/zip

ファイル名がUTF8ですよって主張しているzipをみたことがない。手元にあったとしても確認の方法が分からない。じゃぁgmailが作るzipファイルをよくみれば分かるかも知れない。

ということで、gmailから複数の添付ファイルを一括ダウンロードしてみる。

すると、zipがダウンロードできる。そのzipをzipinfoで内部をみてみる。一番たくさん情報がでるであろう -v オプションで実行。

$ zipinfo -v attachments.zip

すると、最後の方には、ちゃんと、UTF8ファイル名がどうのこうのって出てくる。Mac標準のZIPアーカイブだとこのメッセージはなかった。

 The central-directory extra field contains:
  - A subfield with ID 0x7075 (UTF8 path name) and 31 data bytes. The first
    24 UTF8 bytes in the extra field (V1, ASCII name CRC `7d095e15') are:
    e4 bd 9c e6 a5 ad e8 a8 98 e9 8c b2 32 30 31 37 2d 30 35 2d 30 36 2e 74.

ということで、Gmailの添付ファイルの一括ダウンロードは、MacでもWindowsでも大丈夫なように、UTF8 path nameってやつに対応していましたってことが分かる。