ruby1.9 on FreeBSD7.0

portsにlang/ruby19が存在して、mechanizeが使用するライブラリがhpricotからnokogiriに変更されたと知りruby1.9への移行を再開した。

sudo portinstall libxml
sudo portinstall libxslt
sudo gem19 install mechanize

でインストールが完了した。試しに適当なスクリプトを動かしてみると、http://d.hatena.ne.jp/kitamomonga/20081226/ruby_nokogiri_is_only_for_utf8に書かれているように日本語の扱いが変わってしまっているようだ。

  def clip_login_check
    login_page = @@AGENT.get("http://clip.livedoor.com/clips/#{@id}")
    login_page.links.text("ログイン").empty?
  end

invalid multibyte char (SyntaxError)
syntax error, unexpected $end, expecting ')'

となってしまう。

(1月18日追記)訂正します。上記がエラーとなるのはRuby1.9文字コードの扱いが変わったからでした。Ruby 1.9.0 で tDiary を動かしてみる(トップページだけ), Ruby1.9 で --encoding オプションはつけないほうが幸せ?, Ruby 1.9.0 の ERB ではテンプレートの encoding が欠落す.. - まちゅダイアリー(2007-12-28)が詳しいです。