Monday, November 30, 2009

File encoding sjis to utf8

入力ファイルがUTF-8でない場合
SJISと判断してUTF-8に変換
 
#!/usr/bin/env ruby
# encoding: utf-8

class String
    def utf8?
        unpack('U*') rescue return false
        true
    end
end

f1 = '/Users/keyes/Desktop/utf8.txt'
f2 = '/Users/keyes/Desktop/sjis.txt'

pfs = [f1, f2]
pfs.map! do |f|
    if File.open(f).gets.utf8?
        File.open(f, 'r')
    else
        File.open(f, "r:sjis:utf-8")
    end
end

pfs.each do |pf|
    puts pf.read
end


No comments: