Python将字节转换为字符串
我有以下代码:Python将字节转换为字符串,python,type-conversion,byte,Python,Type Conversion,Byte,我有以下代码: 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. 以及以下形式
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'A',b'D',b'O',b'D',b'E',等等。这里发生了一些事情
可以包含以拉丁语-1或UTF-8编码的文本块。文本
块以拉丁语-1编码,您需要使用拉丁语-1'
编解码器对其进行解码iTXt
块以UTF-8编码,需要使用'UTF-8'
编解码器进行解码
但是,您似乎试图解码单个字节,而UTF-8中的字符可能跨越多个字节。因此,假设您想要读取UTF-8字符串,您应该做的是在尝试解码之前读取您想要解码的字符串的整个长度
如果您试图解释文件中的二进制数据,请查看用于此目的的模块。您不能有包含非ascii的字节,其中是b'öxff'
等。。来自?@PadraicCunningham我想他的意思是b'\xff'
,等等。如果你想解码,你需要使用正确的编解码器<代码>b'\xa4'。使用拉丁语-1解码(“iso-8859-15”)
将是'€'
或'-d'