我有以下代码:
现在有一个问题,当我使用上面的代码将字节转换为字符串时,似乎无法处理十六进制形式的字节,但对于其他所有内容都有效。所以当出现b'öx1a'时,它会将其转换为空字符串,而当出现b'H'时,它会将其转换为"H"。有人知道为什么会这样吗?
with open("heart.png", "rb") as f:
byte = f.read(1)
while byte:
byte = f.read(1)
strb = byte.decode("utf-8", "ignore")
print(strb)
当从“heart.png”读取字节时,我必须读取十六进制字节,例如:
b'öx1a', b'öxff', b'öxa4', etc.
并且以这种形式表示字节:
b'A', b'D', b'O', b'D', b'E', etc. <- spells ADOBE
现在有一个问题,当我使用上面的代码将字节转换为字符串时,似乎无法处理十六进制形式的字节,但对于其他所有内容都有效。所以当出现b'öx1a'时,它会将其转换为空字符串,而当出现b'H'时,它会将其转换为"H"。有人知道为什么会这样吗?
b'öxff'
等是从哪里来的? - Padraic Cunninghamb'\xff'
等等。 - augurarb'\xa4'.decode("iso-8859-15")
将会是'€'
或者使用 latin-1 则为'¤'
。 - Padraic Cunningham