【问题标题】:Decode the bytes解码字节
【发布时间】: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


【解决方案1】:

没有什么可以解码的。这些字节组成一个 zip 文件,您可以创造性地使用 zipfile 来提取存档的内容。

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 2013-12-19
    • 2014-11-30
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多