首页 > 解决方案 > 从字符串创建十六进制列表

问题描述

我正在尝试将字符串转换为十六进制列表:

myString = b'abcdefghijh'

hex = codecs.encode(myString, "hex")
print(hex)
print(list(hex))

然而,这给了我结果:

b'6162636465666768696a68'
[54, 49, 54, 50, 54, 51, 54, 52, 54, 53, 54, 54, 54, 55, 54, 56, 54, 57, 54, 97, 54, 56]

谁能告诉我为什么 2 不匹配?

标签: pythonpython-3.xcodec

解决方案


myString = b'abcdefghijh'
hex = codecs.encode(myString, "hex")
print(hex)
# b'6162636465666768696a68'

您在此处看到的输出实际上是您的十六进制表示的字节对象。这意味着该hex对象中的第一个字节是 '6' 的 ASCII 字节表示,第二个字节是 '1' 的 ASCII 字节表示,等等。 Python 将其转换回字符以便您在打印到控制台时方便。

所以当你这样做时:

print(list(hex))
# [54, 49, 54, 50, 54, 51, 54, 52, 54, 53, 54, 54, 54, 55, 54, 56, 54, 57, 54, 97, 54, 56]

您看到的数字是上述字节的整数表示(54 是字符“6”的十进制 ASCII 码,49 是字符“1”的十进制 ASCII 码等)


推荐阅读