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

Wal*_*Cat 8 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"
?
Run Code Online (Sandbox Code Playgroud)

...

:-(

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

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

谢谢

mu *_*ort 15

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

>> "%4.4x" % form[o].ord
"05db"
>> puts "\u05db"
?
Run Code Online (Sandbox Code Playgroud)

  • @ Agent47DarkSoul:[`Array#pack`](http://ruby-doc.org/core-2.0/Array.html#method-i-pack)是一种方式:`['05db'.to_i(16)]例如,.pack('U')`是''כ'. (3认同)
  • 我更喜欢使用更不言自明的形式“%04x”来进行零填充。 (2认同)

zw9*_*963 7

亩太短了,答案很酷.

但是,最简单的答案是:

'?'.ord.to_s(16)     # => '597d'
Run Code Online (Sandbox Code Playgroud)