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

  • 0
    Like
  • 0
    Comment

    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から複数の添付ファイルを一括ダウンロードしてみる。
    名称未設定.png

    すると、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ってやつに対応していましたってことが分かる。