Ruby конвертирует шестнадцатеричный код в символ и печатает (Unicode Hebrew) - PullRequest
0 голосов
/ 15 января 2011

Здравствуйте, я работаю над проектом, который требует анализа символов иврита.

У меня есть такой случай

letter = case

         when (a[0] == "1") && (a[1] == "2"): "He ה"
         ...
         end

p letter 

=> "He ה"

Я также хочу напечатать символ иврита из шестнадцатеричного числа Unicode(для He 05D4), вот так:

letter = case
         when (a[0] == "1") && (a[1] == "2"): "\05D4 He ה" 
         ...
         end

p letter 

Desired output => "ה He ה"
Actual output => "\005D4 He ה"

Рубин 1.8.8.$ KCODE = "u" установлено над кодом.

Что мне нужно сделать?Я пробовал несколько разных вещей безрезультатно (например, ['05D5'.hex] .pack ("C")) => символ ошибки вне диапазона

Заранее спасибо.

1 Ответ

0 голосов
/ 15 января 2011

Единственная проблема - ваш код отладки. Kernel#p пишет объект .inspect, и это, возможно, слишком сложно, чтобы показать вам внутреннюю структуру.

Просто используйте реальный метод ввода / вывода, например puts, и я думаю, что у вас все будет хорошо.

...