Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将带有十六进制ASCII码的字符串转换为字符_Ruby_Ascii - Fatal编程技术网

Ruby 将带有十六进制ASCII码的字符串转换为字符

Ruby 将带有十六进制ASCII码的字符串转换为字符,ruby,ascii,Ruby,Ascii,我有一个包含ASCII字符的十六进制代码值的字符串,例如“666f6f626172”。我想将其转换为相应的字符串(“foobar”) 这是可行的,但很难看: "666f6f626172".scan(/../).map(&:hex).map(&:chr).join # => "foobar" 有更好(更简洁)的方法吗?解包是否有帮助?您可以使用: H是十六进制字符串的指令(先高半字节)。Stefan已经锁定了它,但这里有一个替代方案,您可能希望在另一个时间和地点折叠起来:

我有一个包含ASCII字符的十六进制代码值的字符串,例如
“666f6f626172”
。我想将其转换为相应的字符串(
“foobar”

这是可行的,但很难看:

"666f6f626172".scan(/../).map(&:hex).map(&:chr).join # => "foobar"
有更好(更简洁)的方法吗?
解包是否有帮助?

您可以使用:


H
是十六进制字符串的指令(先高半字节)。

Stefan已经锁定了它,但这里有一个替代方案,您可能希望在另一个时间和地点折叠起来:

"666f6f626172".gsub(/../) { |pair| pair.hex.chr } # => "foobar"

类似于
[“666f6f626172”].pack('H*)
?@Stefan。是的,像那样。你能把这个作为答案吗?
pack
/
unpack
对我来说永远是个谜。
"666f6f626172".gsub(/../) { |pair| pair.hex.chr } # => "foobar"