nokogiri を使って、xml や html の処理をしたいと
思っているのですが、日本語の扱いで悩んでいます。

どうもnokogiriで処理をすると、その html や xml に含まれている
日本語が文字化けして復元できません。
(ただし、それをブラウザに表示させると、きちんと日本語として表示されます)
どうしたものかなと。

たとえば、

require 'rubygems'
require 'nokogiri'

html = Nokogiri("<h1>Hello world</h1>")

puts html.class
puts html.search("h1")

# 実行結果
# Nokogiri::XML::Document
# <h1>Hello world</h1>

とすれば、なんなくうまくいくわけですが、
<h1>こんにちは</h1>
だとうまくいかない。
(ただし、ブラウザに表示させると、日本語で表示される)

もとの文字列をuri_encode にでもすればいいかな、と思いましたが、
それだとタグ部分の < > / などもencode されてしまい、ダメでした。

全文を split(//) で一文字単位で配列化し、
日本語 utf8 の部分を正規表現で判定し、url_encode にしようかな
とも思いましたが、どうも自分がなにか初歩的な勘違いをしている
気がしてなりません。

みなさんは、nokogiri での日本語の扱いをどのようにしていますでしょうか?
(ruby1.8.7 です)

-- 

yt