Python尝试将字节数组(bytes
假定为utf-8编码的字符串)转换为unicode字符串(str
)。当然,此过程是根据utf-8规则进行的解码。尝试此操作时,会遇到utf-8编码的字符串中不允许的字节序列(即位置0处的此0xff)。
由于您没有提供我们可以查看的任何代码,因此我们只能猜测其余的代码。
从堆栈跟踪中,我们可以假定触发操作是从文件(contents = open(path).read()
)中读取数据。我建议以如下方式重新编码:
with open(path, 'rb') as f:
contents = f.read()
这b
在该模式说明open()
,指出该文件应作为二进制来处理,所以contents
仍将是一个bytes
。这样不会发生任何解码尝试。