LinuxでZIP圧縮ファイルを解凍したら文字化けした時の正しい解決方法
Linuxを使っていると他の人からメールで受け取ったZIP圧縮ファイルを解凍したときや
複数のOSのパソコン間でファイルを移動させたときなどに、
ファイル名やディレクトリ名(フォルダ名)が文字化けすることがあります。
文字化けを見たらつい、焦ってしまいますよね。
でも、ZIPファイルの文字化けの解決方法は、それほど難しくありません。
今回はZIPファイルの解凍(展開)で文字化けが発生したときの解決方法をまとめてみます。
なぜ文字化けするのか?
理由がわかれば、対処方法もおのずとわかってきます。
Linux、Macでは、OSでUTF8という世界の言語に対応した文字コードを使っています。
ZIP形式の圧縮、解凍時にもUTF8が使われます。
一方、Windows日本語版では、CP932(Shift-JIS)という日本語専用の文字コードを使っています。
Windows簡体字中国語版では、GB2312という中国語専用の文字コードを使っています。
このようにWindowsでは、各言語版のOS毎に専用の文字コードを使っています。
ZIP形式の圧縮、解凍時にも各言語版のOS毎の文字コードが使われます。
つまり、Linux、MacとWindowsでは、ZIPファイル圧縮、解凍時の文字コードが違うので、文字化けが発生するんですね。
実は、ZIP形式には世界共通のUTF8で圧縮できる機能があります。
(前述したように、LinuxのZIPファイルはUTF8で圧縮できています)
Windowsデフォルトの圧縮ツールである圧縮フォルダはZIPをWindowsに移植したものですが、UTF8に対応しておらず、ファイル名やフォルダ名には各言語版のOSの文字コードが使われます。
日本語版で中国語のフォルダを圧縮しようとしたり、英語版で日本語のフォルダを圧縮しようとすると、
圧縮の時点でエラーがでて、ZIPファイルの作成すらできません。。
文字化けの原因がクリアになったところで、対処方法にいきます。
ファイル名、フォルダ名 文字化けの対処方法
文字コードの違いを乗り越える方法は、下記のいずれかが考えられると思います。
- Windows側でUTF8に対応したZIP圧縮・解凍ソフトを使用する
- Linux側で各文字コードを自動判別して解凍できるアプリを使用する
- Linux側で圧縮時にCP932を使用する
全体最適を考えれば、1番がBESTです。
2番は、ZIPファイルを送ってきた人に「このファイル文字化けするからUTF8で作りなおしてよね(怒」と言えない弱い立場の場合に有効です。
3番は、Windows日本語版の日本語ファイル名にしか対応できないというイケてない方法なので、選択肢から外します。
では、1番と2番の具体的な方法を説明していきますね。