何か対策方法があれば教えてください(ruby版動かした人のサイトの紹介でもOKです)
1.動かそうとしたソースのあるURL 以下のruby版
http://hatenaquestion.g.hatena.ne.jp/keyword/%e4%ba%ba%e5%8a%9b%e6%a4%9c%e7%b4%a2%e3%81%af%e3%81%a6%e3%81%aa%e3%81%8a%e3%81%a8%e3%81%aa%e3%82%8a%e8%b3%aa%e5%95%8fAPI
2.エラー内容
RDEでRUN時のエラー
------------------------------------------
c:/ruby/lib/ruby/1.8/xmlrpc/client.rb:414:in `call': Invalid RPC request (XMLRPC::FaultException)
from C:/soft/ruby/ruby_server/near.rb:22:in `search'
from C:/soft/ruby/ruby_server/near.rb:32
Completed(1)
------------------------------------------
3.使用しているruby
C:\>ruby -v
ruby 1.8.5 (2006-08-25) [i386-mswin32]
http://rubyforge.org/frs/?group_id=167&release_id=6672 入手元
4.OS
WindowsXP
RDEは使用していないので、irbでサンプルコードを試してみたところ、まったく同じエラーメッセージに遭遇しました。
そこで、質問中のURL(http://hatenaquestion.g.hatena.ne.jp/keyword/%e4%ba%ba%e5%8a%9b%...)にあるPerl版のサンプルを参考にして、検索文字列の文字コードをutf-8にして渡すとうまくいくことが分かりました。
結論としては、以下の方法が有効ではないでしょうか。
対策1:
>$KCODE = 'u'
をスクリプトの先頭(2行目あたり)に追加しておいてRubyスクリプトをutf-8で記述する。
対策2:
NKFなどの文字コード変換ライブラリを使って、XMLRPCに渡す検索文字列を明示的にutf-8に変換する。
birdie-brainさん、ありがとうございますm(__)m
言われるとおりに行を追加して、エディタでutf-8に変換すると動くようになりました。
ついでに「 pp result」の前に以下を追加するとサーバーでも表示するようになりました。
print "Content-type:text/html\n\n";
pp result
初めてWEB API動かせたのでちょっと嬉しいです。
はてなアイデアの方にも書いておきます。