ruby:unicode字符十进制值转换为\ uXXXX? .ord方法不起作用

时间:2012-05-07 03:56:30

标签: ruby unicode decimal

我正在尝试使用unicode字符,字符串的.ord方法提供的信息对我没用。我习惯使用像“\ uXXXX”这样的代码。

ruby-1.9.3-p0 :119 > form[0]
=> "כ" 

ruby-1.9.3-p0 :120 > form[0].ord
=> 1499 
ruby-1.9.3-p0 :121 > puts "\u1499"
ᒙ

...

: - (

.ord产生的值似乎对应于此处提到的'小数点': http://www.i18nguy.com/unicode/hebrew.html

我不知道如何使用这些值。如何从该角色获取\ uXXXX代码?

谢谢

2 个答案:

答案 0 :(得分:14)

\u语法使用十六进制,你给它一个十进制值。你想要:

>> "%4.4x" % form[o].ord
"05db"
>> puts "\u05db"
כ

答案 1 :(得分:7)

mu太短了,答案很酷。

但是,最简单的答案是:

'好'.ord.to_s(16)     # => '597d'