Macから受け取った文字化けしたファイルをLinuxで解凍する
Windows環境等で、Macで作成した日本語を含むzipファイルを受け取ると文字化けして正常に解凍されないことが多々あります。
そういうときの治し方のメモです。
Linuxでとりあえず解凍
UTF-8環境のLinuxへ持っていき、7zaコマンドで解凍します。
$ 7za e mojibake.zip
解凍すると、濁点が独立したUTF8のファイル名で解凍されます。
これはUTF-8をNFDという形でノーマライズしたものです。正確には異なりますがUTF8-macと言われているそうです。
Linux,Windows形式にします。
WindowsやLinuxではNFCというというノーマライズが一般的なので、この形に変換をかけます。
NDFをNFC変換
$ convmv -f utf8 --nfd -t utf8 --nfc -r [解凍されたトップディレクトリ]
変換結果がdry-runで表示されます。(実行されません)
--notestを付けると実行されます。
$ convmv -f utf8 --nfd -t utf8 --nfc -r --notest [解凍されたトップディレクトリ]
7zで圧縮してWindowsに戻す
NFC形式に戻ったので、これをWindowsに転送して完了です。
この時の圧縮形式はzipではなく7zがよいです。
確実にUTF8として認識しますので、Windows側で解凍した際に文字化けしません。
$ 7za a [修正したトップディレクトリ]