解码字节

时间:2011-02-15 13:26:06

标签: python porting

以下代码来自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'编解码器无法解码位置14中的字节0x9f:意外的代码字节

是否可以解码上述内容?

1 个答案:

答案 0 :(得分:3)

无需解码。这些字节构成一个zip文件,您可以通过创造性地使用zipfile来提取存档的内容。