>464
とりあえず間に合わせのすっごく泥臭い方法だが

require 'nkf'

src = "壁の表面を移動"
puts NKF.nkf('-W16s', [src.gsub(/&#(\d+);/) {$1.to_i.to_s(16)}].pack("H*")) # "壁の表面を移動"

# つか、数値参照なんだからShift_JISぢゃなくてUnicodeだそれ
# あと、CGI.unescapeHTMLでできそうにも思えたがダメスorz