先日、rubyXLというgemを試していたとき、日本語が日本のように表示されてしまいました。
すわ、文字化け?と思いましたが、よく良く調べてみると数値文字参照という形のようです。
ただ文字化けでないことは分かりましたが、これを人が読める文字列の形にするためにはどうすればいいのか、かなり悩んだのでここにメモ。
結論から言うと、htmlentitiesを使えば簡単に変換できました。
いつものようにgem installでhtmlentitiesをインストール。
tsubame.local{miyohide}% gem install 'htmlentities' Fetching: htmlentities-4.3.1.gem (100%) Successfully installed htmlentities-4.3.1 1 gem installed tsubame.local{miyohide}%
ちょっと確かめてみます。
ちなみに、数値文字参照の値はこのページから値を得ました。「日本」は「日本'」だそうです。
tsubame.local{miyohide}% irb irb(main):001:0> require 'htmlentities' => true irb(main):002:0> puts HTMLEntities.new.decode('日本') 日本 => nil irb(main):003:0>
おぉ!きちんと変換できました。すばらしい。