なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

rubyzip で、日本語パスを含んだファイルを解凍する

どうやら、 rubyzip で日本語を含むファイルの zip を解凍すると、いろいろ死ぬっぽい。

その対策。


下のような構成のファイルを解凍すると、なにか色々おかしくなる。

ruby.zip
|-テスト
| |- 画像001.png
| |- memo.txt

解凍後は、下のように色々変になる。

ruby
|-?e?
| |- ??e001.png
| |- memo.txt

解決方法は単純で、前回と同じく文字コード周り

# coding: utf-8

厄介なのが、なぜかentry.file?が true なにもかかわらず、ディレクトリのパスが降りてくることがあるので、 entry.name.toutf8().end_with?("/")で、弾くようにした。