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)
でちゃんと変換できた。
“嶽 文字化け”でググっても出てこなかったので、とりあえず記事にしておこう。
ちなみに、「佐渡ケ嶽部屋」もダメだった。「嶽」の字が鬼門らしい。