Unicode実態参照をUTF-8文字列に変換

Unicode実態参照をUTF-8文字列に変換するという処理が必要になった。
標準添付ライブラリに使えるクラスが当然あると思って探したけれど、無い…。

ググった結果HTMLEntitiesを発見。

インストールは

gem install -r htmlentities

使ってみる

import "rubygems"
import "htmlentities"
$KCODE="u"

変換結果 = HTMLEntities.new.decode(変換前)

超簡単。

ちょっと考えてみると、外部のライブラリを使わなくても、

変換結果 = 変換前.gsub(/\&#(\d+);/){[$1.to_i].pack('U')}

でいける。
この例では実態参照が16進表記に対応していないけれど、対応してもたいしたことない。

標準添付ライブラリに含めないのは、この程度の処理は車輪の再発明しろということなのか。