Unzipconvはzipファイルを展開するだけプログラムです.
Linuxでzipを展開するときにはunzipをよく使うわけですが, zipファイルに含まれるファイルの中にSJISのファイル名があると, ファイル名が変な形で展開されてしまいます. しかも, unzipの実装の仕方のせいで, 変なふうに展開されたファイル名を修正することができません. そのようなファイルを展開する際に, unzipの代わりに使えるものが必要になり, zipファイルをただ展開するだけのプログラムを 自分のために書きました.
こちらからダウンロードし展開したなかにある,
bin/unzipcon.py
が本体です
次の様にやれば, 多分展開できます: unzipconv.py zipファイル
保存するディレクトリを指定するには, 次の様にやります:
unzipconv.py zipファイル -d 保存先
Zipファイルに含まれるファイルのファイル名の文字コードを指定するには,
unzipconv.py zipファイル --decode euc_jp
のように指定します.
指定しなかった場合は, 可能な文字コードを調べ,
候補がひとつに絞れた場合には展開します.
一つに絞れなかった場合は, 展開せず文字コードの候補を表示します.
unzipconv.py zipファイル --language 言語
とやると, ファイル名の文字コードを探す範囲を指定した言語に限定します.
全ての言語を対象に検索したい時は, noneを指定します.
指定しなかった場合は, システムのロケールがja*, ko*, tz*, ru* , それ以外の場合に
それぞれ Japanese, Korean, Chinese, Russian, none が指定されたものと同じとなります.
最新版(開発版)はこちらからダウンろーどしてください.
文字コードの判別などはかなりいい加減なロジックですが, unzipでおかしなことになった時にだけ使うという用途であれば, それほど問題にならないのではないかと思っています.
Github: https://github.com/a175/unzipconv
とりあえず, GPLとしておきます.
[もどる]