Ruby: 日本語の文字列を UTF-8 に変換する 日本語の文字列 (euc-jp, shift_jis, iso-2022-jp, utf-8 のいずれかわからない) を UTF-8 に変換しようと思った。 最初は samidareに含まれる Mconv.guess_charset を試したが、巨大なテキストを扱うとかなり遅かったので、ここやここやここを参考にして、次のようなコードを書いた。 class Iconv Preference = ["iso-2022-jp", 'euc-jp', 'utf-8', 'shift_jis', 'windows-31j'] def self.tou8 (str) return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # us-ascii Preference.each {|name| begin