ユニコードの数値文字参照の解決
Ruby でユニコード文字の数値文字参照の解決ってどうするんだっけ。
1.9 なら "\u<云々>" と書けば良い(言う程単純なことでもないか)、1.8 ではどうするんだっけ。
取り敢えずこんなものがある、http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-user_timeline の RSS出力からいろいろしたりタグを取り除いたりしたもの。
hs9587: おはようございます
配列の #pack('U') でいいようだ http://doc.loveruby.net/refm/api/view/method/Array/i/pack。
irb(main):002:0> puts [12362].pack('U') お => nil
ちなみに複数文字ならその分テンプレート文字列に数字
irb(main):004:0> puts [12362, 12399, 12424, 12358].pack('U4') おはよう => nil
するとこんな感じか
irb(main):008:0> str = "hs9587: おはようございます" => "hs9587: おはようございます" irb(main):009:0> puts str.gsub(/&#(\d+?);/){ [$1.to_i].pack('U') } hs9587: おはようございます => nil
ちょっと文字数数えてらんないし。