そんな時には、Fileを開く際に外部エンコーディングを指定してあげれば良い。
実行時に文字列のエンコーディングを変更する方法→http://se-bikou.blogspot.com/2010/02/ruby19.html
ファイル出力
windows-31jのフィルを出力する場合
#coding:utf-8 # windows-31jを指定してファイルを開く File.open("test.txt", "w:windows-31j") { |file| file.puts "1,あいうえお" file.puts "2,あいうえお" }
euc-jpを指定する場合
#coding:utf-8 # euc-jpを指定してファイルを開く File.open("test.txt", "w:euc-jp") { |file| file.puts "1,あいうえお" file.puts "2,あいうえお" }
ファイル入力
euc-jpのファイルを出力
# euc-jpのファイルを読み込む場合 # 入力ファイルのエンコーディングには、euc-jpを指定する。 File.open("test.txt", "r:euc-jp") {|file| file.each {|line| puts "#{line}:#{line.encoding}" } }