rubyは.NETに比べて文字コードの問題が起こりやすい気がします。
オープンソースに共通する問題かも知れませんが。
世界のいろんな人がいろんな文字コードを前提としてコードを書いてるからでしょうか。
mechanizeの単体テストである要素のinner_htmlを取得すると文字化けしてました。
page.search("a").each do |href| puts href.inner_html end
これはtoutf8でコード変換すればOK。
page.search("a").each do |href| puts href.inner_html.toutf8 end
次に漢数字を半角数字に直す場合。
names.collect{|name| name.tr('一二三四五六七八九', '1-9')}
これはjcodeを使います。
require 'jcode' names.collect{|name| name.tr('一二三四五六七八九', '1-9')}
jcodeをrequireすると二バイトコードを正しく扱ってくれる。
が、以下の場合は正しく処理できないようだ。
"一二三四五六七八九"[2..3] #=>三四とはならない
二バイトコードを含む文字列の指定箇所を抜き出す方法は今後の宿題にします。