Possible Duplicate:
Hex to binary in ruby
在 Python 中,我可以执行以下操作:
>>> str = '000E0000000000'
>>> str.decode('hex')
'\x00\x0e\x00\x00\x00\x00\x00'
如果我必须在 ruby 中实现相同的输出,我可以调用哪个? to_s(16)
试过了,好像不行。我需要采用该特定格式的输出,因此我希望得到以下内容:
"\\x00\\x0e\\x00\\x00\\x00\\x00\\x00"
irb(main):002:0> [str].pack('H*')
# => "\x00\x0E\x00\x00\x00\x00\x00"
或者(仅限 Ruby 1.9):
irb(main):004:0> str.scan(/../).map(&:hex).map(&:chr).join
# => "\x00\x0E\x00\x00\x00\x00\x00"
如果需要格式化字符串:
irb(main):005:0> s = str.scan(/../).map { |c| "\\x%02x" % c.hex }.join
=> "\\x00\\x0e\\x00\\x00\\x00\\x00\\x00"
irb(main):006:0> puts s
\x00\x0e\x00\x00\x00\x00\x00
=> nil