当我尝试使用python将steam解码为protobuf时,我收到了这个错误:
UnicodeDecodeError:' utf8'编解码器不能解码位置1中的字节0xaa
我的代码只是从文件中读取数据,并使用" 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.detect()并发现它是ISO-8859-2。
问题是,似乎ParseFromString()需要对数据进行utf-8编码(我不确定)。如果我将数据从ISO-8859-2转换为utf-8。然后我又得到了一个错误:
google.protobuf.message.DecodeError:截断的消息
如何正确解码数据?有人有什么建议吗?