解码字节

4 投票
1 回答
3306 浏览
提问于 2025-04-16 11:52

下面这段代码来自 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\x00index.htmlPK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x008\x00\x00\x00.\x00\x00\x00\x00\x00'

如果我尝试解码,也就是:

zip_file.getvalue().decode()

它会提示:

'utf8' 编码无法解码字节 0x9f,在位置 14:意外的代码字节

那么,以上内容有可能解码吗?

1 个回答

4

这里没有什么需要解码的。这些字节组成了一个压缩文件,你可以通过巧妙使用 zipfile 来提取这个压缩包里的内容。

撰写回答