どういうわけか書いた、数値文字参照をUTF-8にするスクリプトがあったのであげてみる。完成品はラストの一行だけなんですけどねー、ねー。 $KCODE='u' # 文字は 16bit と仮定 s1 = '人生オワタ'.unpack('U*').collect {|c| c >= 255 ? '&#' + c.to_s + ';' : c.chr }.join s2 = '\(^o^)/'.unpack('U*').collect {|c| c >= 255 ? '&#x' + c.to_s(16) + ';' : c.chr }.join s = s1 + s2 puts '元データ ("人生オワタ"は10進,"\(^o^)/"は16進)' puts s #=>人生オワタ\(^o^)/ puts