mixiにログインして書き込み確認画面まで行くプログラムを作ったが問題が発生した。以下のスクリプトを実行するとエラーがでる。エラーメッセージは`iconv': "\245\306\245\271\245\310" (Iconv::IllegalSequence)で@agent.submit(diary_form)のところで発生しているようだ。eucで文字列を送ろうとするとエラーが発生してUTF-8だとエラーは発生しないもよう。どうすればいいのだろうか?
require 'rubygems' require 'mechanize' require 'kconv' email = 'hogehoge@hogehoge.com' password = 'hoge' class Mixi def login(email, password) @agent = WWW::Mechanize.new @agent.set_hook page = @agent.get("http://mixi.jp/home.pl") form = page.forms[0] form['email'] = email form['password'] = password form['next_url'] = '/home.pl' @agent.submit(form) end def writeDiary(title, text) page = @agent.get('home.pl') diary_link = '' page.links.each{|link| if link.href.include?('add_diary.pl') diary_link = link.href break end } diary_page = @agent.get(diary_link) diary_form = diary_page.form('diary') diary_form['diary_title'] = title.toeuc diary_form['diary_body'] = text.toeuc confirm_page = @agent.submit(diary_form) end end mixi = Mixi.new mixi.login(email, password) mixi.writeDiary('テスト', 'テスト')