我想打包一个包含"00000000"
的字符串。
如果我"00000000".to_a.pack('H*')
我收到错误
中的 :string包含空字节(ArgumentError)
我需要将其作为十六进制字符串发送到微处理器。样本可以是0x81 0x00 0x00 0x21
答案 0 :(得分:3)
对于空字节有一个pack
指令:x
。
>> ["a", "b"].pack("HxH") #=> "\xA0\x00\xB0"
答案 1 :(得分:1)
试试这个:
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"