使用python的protobuf解码错误

2024-03-29 10:23:09 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图用python将一个steam解码成protobuf时,我得到了一个错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xaa in position 1

我的代码只是从文件中读取数据,然后使用“ParseFromString”对其进行解码。在

f = open('ds.resp', 'rb')
eof = False
    data = f.read(1024*1024)
    eof = not data
    if not eof:
        entity = dataRes_pb2.dataRes()
        entity.ParseFromString(data)
        print entity

文件中的数据是从http请求下载并保存的。数据似乎不是utf-8编码的。所以我用chardet.检测()并发现它是ISO-8859-2。在

问题是,ParseFromString()似乎需要对数据进行utf-8编码(我不确定)。如果我把数据从ISO-8859-2转换成utf-8。然后我又犯了一个错误:

google.protobuf.message.DecodeError: Truncated message

如何正确解码数据?有人有什么建议吗?在


Tags: 数据message编码data错误notiso解码