2008年1月29日(火曜日)
Unicodeエスケープのサロゲート対応版 (続き)
Kconv だと余計な正規化が入ったりするというご指摘をいただいたので (成瀬さんありがとうございます)、まじめにサロゲートペアを計算することにしました。こんな感じ。
def js_unicode_escape(text) text.unpack('U*').map{ |num| if(num < 0x10000) format('\\u%04x', num) else num -= 0x10000 upper = num / 0x400 + 0xD800 lower = num % 0x400 + 0xDC00 format('\\u%04x\\u%04x', upper, lower) end } end
ちなみに UTF-16 で表現できない文字のことは考慮していません。:-)
- 「Unicodeエスケープのサロゲート対応版 (続き)」にコメントを書く
関連する話題: プログラミング / Ruby / JavaScript
- 前(古い): 2008年1月28日(Monday)のえび日記
- 次(新しい): 2008年1月31日(Thursday)のえび日記