Ещё одна крупица мудрости и благодати позволит преобразовывать non-ASCII символы в строке в их экранированный Unicode эквивалент вроде \u0444:
1 class String
2 def escape_unicode
3 unpack('U*').map {|c| c < 0x80 ? c.chr : '\u%04x' % c}.join
4 end
5 end
2 def escape_unicode
3 unpack('U*').map {|c| c < 0x80 ? c.chr : '\u%04x' % c}.join
4 end
5 end
>> puts "фывыфdd".escape_unicode
\u0444\u044b\u0432\u044b\u0444dd
Работает и в 1.8 и в 1.9.
Воистину, Ruby велик и Hal Fulton его пророк.
По мотивам одного перлового модуля. Короче в 5 раз.
Комментариев нет:
Отправить комментарий