読者です 読者をやめる 読者になる 読者になる

みかづきメモ

学習したことのメモとか、日記とか、備忘録。

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

Ruby

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

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


調べたところ、

MacLinux では文字コード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)のもの。

以上、おわり。