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)のえび日記
