Ruby 1.9で文字コードの自動判別を行う

Posted filed under Ruby.

 たまにRubyの話題でも。  Ruby 1.9で文字コードの自動判別をさせようとおもったら、意外に良いライブラリが見つからなくて苦労しました。 結局ICUをbindingした、charlock_holmesがちゃんと使えたので、メモです。  OSXで使う場合は、下記の様にしてICUライブラリをインストールします。Linuxでは適当なパッケージシステムを使ってインストールしてください。 curl -O http://download.icu-project.org/files/icu4c/4.8.1.1/icu4c-4_8_1_1-src.tgz tar xvzf icu4c-4_8_1_1-src.tgz cd icu/source ./runConfigureICU MacOSX –with-library-bits=64 –disable-samples –enable-static make sudo make install  charlock_holmes自体はgemで提供されています。 gem install charlock_holmes  文字列をUTF-8に変換する場合は、iconvと組み合わせて下記の様に書きます。 encode = CharlockHolmes::EncodingDetector.detect(str)[:encoding] str.encode(“UTF-8″, encode) 【変更 2012/1/6 19:37】 コメントを頂いたので、iconvからString#encodeに切り換えました。 【変更 2012/1/6 18:52】 ICUのバージョンを4.8.1.1に上げました。