Mechanizeがときどき日本語のページで文字化けするので、原因と解決方法を調べてみた。確認したバージョンは次の通り。 Ruby 1.9.1-p378と1.8.6-p111(Ubuntuのパッケージ) Mechanize 1.0.0 Nokogiri 1.4.2 libxml2 2.6.31(Ubuntuのパッケージ) エンコーディングの扱い Mechanizeの内部エンコーディングはUTF-8に固定されていて、ドキュメントのエンコーディングが何であれUTF-8に変換される。これはMechanizeがHTMLパーサに使っているNokogiriの仕様であり、Nokogiriが依存しているlibxml2の仕様でもある。そういう事情でMechanizeから取り出した文字列はすべてUTF-8になっている。Ruby 1.9だとString#encodingはEncoding::UTF_8にセットさ