[ruby]「嶽」の文字化け問題

Ruby1.8.6で「嶽」の字をtosjisでShift-JISに変換すると、なんだか意図しない文字(F7 D3 0A)に変換されてしまった。

require 'kconv'
str="嶽"
print str.tosjis

(utf-8で保存して実行してね。)

Rubyist Magazine – 標準添付ライブラリ紹介 【第 3 回】 Kconv/NKF/Iconvによると、

>先述の Kconv#to* では変換元の文字コードを推測しているため、推測が外れていた場合は変換結果が文字化けしてしまいます。このような危険性を避けるため、変換元の文字コードが分かっている場合は、なるべく文字コードを明示的に指定するようにしましょう。

とのこと。

print str.kconv(Kconv::SJIS, Kconv::UTF8)

でちゃんと変換できた。

“嶽 文字化け”でググっても出てこなかったので、とりあえず記事にしておこう。
ちなみに、「佐渡ケ嶽部屋」もダメだった。「嶽」の字が鬼門らしい。