Mac OS Xで作成したzipアーカイブを他のOS環境で伸張・展開(解凍)すると、日本語ファイル名が文字化けしてしまうことがある。だからMacは困るんだ。と、ぼやかれたり、どうすればいいですか? と、よく質問されるのでまとめてみる。
これはMacのアーカイブユーティリティーと、相手側でzipファイルを処理するプログラムとの間で、ファイル名の扱い方が異なるために起きる問題であり、大きく次の2つのパターンがある。
- UTF-8でエンコーディングされたファイル名をサポートしていない。
- UTF-8はサポートしているが、UTF-8-MACエンコーディングをサポートしていない。
- Windowsで文字バケ
-
パターン1の例。Mac OS XのFinderから「“〜”を圧縮」コンテキストメニューで作成したzipファイルを、Windowsに持っていって展開すると日本語ファイル名が文字化けする。おまけに、「__MACOSX」というフォルダとともにWindowsには不要なファイルがモリモリ含まれてしまう。
Windows用のzipファイルを作成したければ、Mac App Storeから「WinArchiver Lite - Tida Inc.」でもインストールすればよいだろう(ちょっとしたやり取りならLiteのほうでも十分かと思われる)。
- Kindleで文字バケ
-
パターン2の例。Amazon.comのKindle Personal Documents ServiceへのメールにMac OS Xで作成したzipファイルを添付するとWindowsに持ち込んだ場合とは、また違った化け方をする。
Kindle Library Webインターフェースでは日本語ファイル名も正しく表示されるのだが、デバイスに転送すると濁音・半濁音を含む部分が正常に表示されない(清音+□になる)。
この場合、アルファブロガーとして有名な 小飼弾氏のPerlスクリプトなんぞを使って変換してやればKindleでもファイル名が正しく表示されるzipを作成できる。
$ convzip.pl src(utf8-mac-nfd).zip dst(utf8-nfc).zip
※デフォルトがUTF-8になっているので-e cp932オプションはいらない。Windows用に変換したい場合は付ける。
要するに、zipアーカイブ内のファイル名をMacで使われている(でしか使われてない?)変態的なエンコーディング(NFD)によるものから、一般的なエンコーディング(NFC)のものに書き換えて解決する。
もっとも、Personal Documents Serviceは複数のファイルが添付されたメールも受け付けるので、zip圧縮せず、1通のメールにそれぞれのファイルを別々に添付するほうが手っ取り早い。
0 件のコメント:
コメントを投稿