web-dev-qa-db-ja.com

日本語のZipファイルを解凍し、文字化け/文字化けを防ぐ方法

日本のお客様からZipファイルを受け取りました。

解凍しようとすると、ファイル名とフォルダ名が台無しになります。

$ unzip ~/Downloads/【新入荷ECM】資料.Zip
...
 inflating: БyРVУ№Й╫ECMБzОСЧ┐/123_ГЖБ[ГXГPБ[ГX.xlsx

問題とその回避方法は何ですか?

3
Nicolas Raoul

問題は、日本で流通しているほとんどのZIPの内容が エンコード として Shift JIS であり、Ubuntuではデフォルトで正しく表示されないことです。

解決策は、コマンドで-O shift-jisオプションを使用することです。

$ unzip -O shift-jis ~/Downloads/【新入荷ECM】資料.Zip
...
 inflating: 【新入荷ECM】資料/123_ユースケース.xlsx

このように、展開されたファイルはUbuntuで完全に読み取り可能です。

5
Nicolas Raoul

これに対する簡単な答え

$ Sudo apt install unar
$ unar ~/Downloads/【新入荷ECM】資料.Zip

unarは、使用されているエンコーディングを自動的に認識できます。圧縮のみではなく、抽出のみを行います。

次に、「 convmv 」を使用して、抽出後にテキストをエンコードします。

$ convmv -f shift_jis -t utf8 БyРVУ№Й╫ECMБzОСЧ┐/123_ГЖБ[ГXГPБ[ГX.xlsx --notest

逆に、utf8からWindows用のshift_jisテキストにファイルを作成する場合。

$ convmv -f utf8 -t shift_jis <filename> --notest

別の回答、Ubuntu日本語チームの使用により自動エンコード 'unzip'が構築されましたが、 repository を追加する必要があります。

2