成瀬です。

2011年9月27日10:15 Y. Nobuoka <nobuoka / r-definition.com>:
>> ところが,Ruby 1.9 では,Shift JIS の YAML テキストを与えても,
>> UTF-8 としてパースしているように見えます。
>> Shift JIS として解釈させる方法がありますか?
>
> Ruby 1.9 では、UTF-8 としてパースしているというよりも、
> Ruby 1.8 と同じく文字エンコーディングを気にせずにパースして、
> 結果の文字列のエンコーディングを問答無用で UTF-8 に指定しているように思います。
> (YAML ライブラリの中身をちゃんと見ていないので間違えているかもしれません。)

よろしくない挙動ですね。
勝手に UTF-8 に変換するか、いっそエラーにするかがよいような気がします。
バグとみなしてしまっていいんじゃないでしょうか。

で、当面の対応策ですが、
str=YAML.load(text.encode("utf-8")).first.encode("cp932")
とするのがいいんじゃないでしょうか。

-- 
NARUSE, Yui  <naruse / airemix.jp>