From: Takeshi Honda <moecho21 / yahoo.co.jp>
Subject: [ruby-list:45009] Mechanize と文字コード
Date: Thu, 5 Jun 2008 22:10:39 +0900

るびきちです。

> #!/usr/bin/ruby -Ks
> 
> require 'mechanize'
> 
> agent = WWW::Mechanize.new;
> page = agent.get('http://yubin.senmon.net/');
> form = page.forms.with.name('search').first;
> form.q = "東京都世田谷区";
> search_results = agent.submit(form)
> 
> search_results.bodyの結果をブラウザで確認してみると、
> form.qの部分に'scJ'と文字化けした値が入っています。

サイトがUTF-8で作られているからです。
文字コードを変換しましょう。

#!/usr/bin/ruby -Ks
require 'rubygems'
require 'mechanize'
require 'kconv'

agent = WWW::Mechanize.new;
page = agent.get('http://yubin.senmon.net/');
form = page.forms.with.name('search').first;
form.q = "東京都世田谷区".toutf8;
search_results = agent.submit(form)
puts search_results.body.tosjis

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/