当我试图用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
如何正确解码数据?有人有什么建议吗?在
目前没有回答
相关问题 更多 >
编程相关推荐