なつねこメモ

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

rubyzip で Windows 向けに ZIP ファイルを作る

rubyzip で ZIP 圧縮して、 Windows でそれを解凍したら、
日本語を含むファイルが文字化けしている。

それだと困るので、その対処方法。


調べたところ、

Mac や Linux では文字コードが UTF-8 だけど、 Windows では Shift-JIS だからとのこと。
なので、ファイル名のエンコーディングに Shift-JIS を使えば直る。

test.rb
# coding: utf-8
require 'zip'

Zip::OutputStream.open("test.zip") do |zos|
  zos.put_next_entry "テスト.txt".encode("Shift_JIS")
  zos.puts "aaaaaaaaaaaaaaaaaaaaaaaあああああああああああ"
end
実行結果

f:id:MikazukiFuyuno:20150730191558p:plain
上が Shift-JIS エンコードしたもの、下がそのまま(UTF-8)のもの。

以上、おわり。