Iconv

Iconvは環境依存ながら、JIS X 0213に対応してるらしい。

UNIX 系で主に使われる iconv を Ruby から利用するためのライブラリです。そのシステムに存在する iconv を利用するため、実際にどのような文字コードを利用できるかはプラットフォームに依存します。

$ echo $LANG
ja_JP.UTF-8
$ irb
irb> $KCODE = 'u'
=> "u"
irb> require 'iconv'
irb> Iconv.iconv('UTF-8', 'Shift_JIS',  Iconv.iconv('Shift_JIS', 'UTF-8', '森鴎外').to_s)
=> ["森鴎外"]
irb> Iconv.iconv('UTF-8', 'Shift_JIS',  Iconv.iconv('Shift_JIS', 'UTF-8', '森オウ外').to_s)
Iconv::IllegalSequence: "オウ外"
        from (irb):7:in `iconv'
        from (irb):7
        from :0

環境のせいだろうけど対応してなかったっぽい。でも例外が出てくれるのは嬉しい。