我有一个包含ASCII字符的十六进制代码值的字符串,例如"666f6f626172"。 我想将其转换为相应的字符串("foobar")。 这个方法可以实现但很丑陋:"666f6f626172".scan(/../).map(&:hex).map(&:chr).join # => "foobar" 有更好的方法吗?unpack 会不会有所帮助?
Stefan已经做得很好了,但这里有一个备选方案,你可能想留到另一个时间和地点使用:"666f6f626172".gsub(/../) { |pair| pair.hex.chr } # => "foobar"
["666f6f626172"].pack('H*')
? - Stefan