概要
Windowsサーバでzip圧縮したファイルをLinuxサーバで解凍することが何度かあったので備忘録として記しておきます。
原因
CP932とは: Microsoftコードページ932
Mac,Linuxでのzip圧縮のエンコードはUTF-8。Macでのunzipコマンドでの解凍では文字コードを自動判別してくれるので、問題ないが、linuxでのunzipコマンドでは文字化けしてしまうので、パッチをあてて修正版unzipつくる必要がある。ディストリビューションによって対処方法がまちまちなので、ここではその対処法はとりません。
対処法
使用方法
上記perlスクリプトをファイル名unzip-cp932
にてパスのあたっている/usr/bin
以下に作成 そして実行モードに変更
chmod +x unzip-cp932
unzip-cp932 hoge.zip
注意
CP932(Shift_JIS)以外のエンコードは化けるので注意。Mac,Linuxで作成したzip圧縮のフォルダやファイル名のエンコードはUTF-8なので、
unzip-cp932
は使えません。 あくまでWindowsで作成されたzipファイルを解凍する際に使用。
他の例
windowsから送られてきたzipファイルを解凍するとファイル名が大変なことになっている時上記の
unzip -Ocp932
のOcp932オプションを使用できず、解凍できない場合があった。WinからLinuxへzipファイルなど持ってきた時の文字化け対処方法
上記、convmvを使用する場合