古いシステムのために EUC-JP でファイル書き出しをする必要がある場合,内部エンコーディングは UTF-8 だったので,今まで明示的に書き込む文字列を EUC-JP に変換してから書き込んでいた.
でも,次のようにモードでエンコーディングを指定すると自動でその変換をやってくれるらしい.
# coding: UTF-8
# UTF-8 から EUC-JP へ変換して書き込んでくれる.
File.open("hoge-euc", "w:EUC-JP:UTF-8") do |f|
f << "ファイルの中身"
end
同様に,ファイルからの読み込みもファイル読み込み時にエンコーディングを指定できる.
encoding キーワードを付ければ良い.
# coding: UTF-8
# EUC-JP のファイルを読み込んで UTF-8 に変換する
puts File.read("hoge-euc", encoding: 'EUC-JP:UTF-8')