ruby - 在 Ruby 中解码十六进制字符串

标签 ruby

<分区>

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

关于ruby - 在 Ruby 中解码十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9943985/

相关文章:

ruby-on-rails - coffeescript 在我的项目中出错,之前工作正常

ruby - node-webkit 等同于 sinatra?

ruby - 如何在 Ruby 中将整数数组连接到单个整数

ruby-on-rails - 未设置安全 session cookie

ruby - Ubuntu ruby gem 位置

ruby-on-rails - rails3 devise omniauth 推特配置

php - 是否可以像 PHP 一样混合 Ruby 代码和 HTML?

ruby - 按 Ruby 中哈希的值降序排序

ruby - 执行不带 .rb 扩展名的 ruby​​ 脚本?

ruby - Rails PostgreSQL 使用 LIKE 进行不区分大小写的搜索