我想打包一個包含"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的重定向似乎有訣竅。謝謝 –