【问题标题】:Can't Convert String to Bytes无法将字符串转换为字节
【发布时间】:2020-11-03 16:26:05
【问题描述】:

我正在尝试将这样的字符串:“1234”转换为字节数组: bytearray(b'\x12\x34') 但输出来自

line="1234"
print(bytearray.fromhex(line))

是缺少 3 的 bytearray(b'\x124')

知道这里发生了什么吗?我有一个很长的十六进制文件,我正在尝试将其读入字节数组

【问题讨论】:

  • 它就在输出中。你检查了吗?例如,您认为输出应该多长时间?

标签: python arrays string byte


【解决方案1】:

您缺少的3 就在:bytearray(b'\x124')。你能看到最后的4。那是\x34。还有你的3

按照这个例子。它显示了如何从字符串转换为 bytearray 并返回来恢复信息:

for line in ("1212", "1234"):
    print(len(line), line)
    h = bytearray.fromhex(line)
    print(len(h), h)

    l = h.hex()
    print(len(l), l)

输出:

4 1212
2 bytearray(b'\x12\x12')
4 1212
4 1234
2 bytearray(b'\x124')
4 1234

你能看到从42再到4的长度吗?

【讨论】:

  • 谢谢!你能解释一下最后的 4 是如何表示 \x34 的吗?
  • 那么,\x34 对你来说代表什么?
  • 我只看到 (b'\x124') 没有 3
  • 实际上是 '\x12' 后跟 '4'。它是字节数组,它试图“有帮助”,而不是打印“\x34”,而是将其转换为 ASCII 字符,你得到“4”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
相关资源
最近更新 更多