我想打包一个包含"00000000"
的字符串。打包字符串以包含空字节
如果我做我得到一个错误
在“系统”:字符串包含空字节(引发ArgumentError)
我需要发送这是一个十六进制字符串的微处理器。样本可能是0x81 0x00 0x00 0x21
我想打包一个包含"00000000"
的字符串。打包字符串以包含空字节
如果我做我得到一个错误
在“系统”:字符串包含空字节(引发ArgumentError)
我需要发送这是一个十六进制字符串的微处理器。样本可能是0x81 0x00 0x00 0x21
试试这个:
input = "A000B0"
output = []
until input.empty?
output << input[0, 2].to_i(16)
input = input[2..-1]
end
puts output.pack('C*').inspect # => "\xA0\x00\xB0"
空字节有pack
指令:x
。
>> ["a", "b"].pack("HxH") #=> "\xA0\x00\xB0"
酷。我没有看到。但是我的十六进制字符串是从用户输入中获取的,因此我不知道何时使用空字节,何时不使用。用户可能在最后三个字节中写入0x81 0x00 0x00 0x00或任何其他组合。 –
这和stdout的重定向似乎有诀窍。谢谢 –