【发布时间】:2011-02-15 13:26:06
【问题描述】:
以下代码来自 zipfile.py。
self.fp.write(zinfo.FileHeader())
def FileHeader(self):
header = struct.pack(structFileHeader, stringFileHeader,
self.extract_version, self.reserved, flag_bits,
self.compress_type, CRC, dosdate, CRC,
compress_size, file_size,
len(filename), len(extra))
return header + filename + extra
在其他文件中:
// Some other codes.....
zip_file = zip_dir(self.upload_dir)
zip_file.getvalue()
我的问题:
'zip_file.getvalue()'的结果如下:
...b'PK\x03\x04\x14\x00\x00\x00\x00\x00\x00\x00O>\x9f\xec\x04\xd0\x06\x00\x00\x00\x06\x00 \x00\x00\n\x00\x00\x00index.htmlyellowPK\x01\x02\x14\x03\x14\x00\x00\x00\x00\x00\x84\x93O>\x9f\xec\x04\xd0\x06\ x00\x00\x00\x06\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00索引。 htmlPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x008\x00\x00\x00.\x00\x00\x00\x00\x00'
如果我尝试解码,即
zip_file.getvalue().decode()
上面写着:
'utf8' 编解码器无法解码位置 14 中的字节 0x9f:意外的代码字节
上面的可以解码吗?
【问题讨论】:
-
getvalue()结果是二进制 ZIP 表示。你对“解码”它有什么期望?它不是文本,因此您无法将其解码为 Unicode。我不知道你想达到什么目的 - 你想打开一个 ZIP 文件吗?? -
我得到的值是 b'something'。我只想将 b'something' 转换为 'something'?我不确定这是否可以做到。
-
这没有意义。你应该先了解一下 Python 3 中字节和字符串的区别。以上是一个 ZIP 文件的二进制内容。
标签: python byte decode porting