UnicodeDecodeError';utf-8';编解码器可以';t解码-使用python形状文件读取器

UnicodeDecodeError';utf-8';编解码器可以';t解码-使用python形状文件读取器,python,unicode,shapefile,Python,Unicode,Shapefile,我在读一个形状文件 r = shapefile.Reader(filepath, encoding = "utf-8") 但是,当我试图从.records()对象中获取值时,如下所示: r.records()[0] 它向我返回以下错误: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 4: invalid continuation byte 这意味着您的文件没有用utf-8编码。请尝试:ISO885

我在读一个形状文件

r = shapefile.Reader(filepath, encoding = "utf-8")
但是,当我试图从.records()对象中获取值时,如下所示:

 r.records()[0]
它向我返回以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 4: invalid continuation byte

这意味着您的文件没有用utf-8编码。请尝试:ISO8859-1


如果您在Linux上(或在Windows上使用git bash),则可以使用
文件
命令查找编码。

切换到8位编码可能只会消除症状,并产生垃圾输出。您应该检查有问题的输入并确定它们使用的精确编码。如果
\xE9
字节表示一个`é''字符,那么拉丁语-1或CP1252是很好的猜测;如果没有,也许可以查看其他解释。@tripleee或使用我建议的
文件
来检测编码,它的精度不高。如果您只有几个字节,并且知道或能够猜出它们代表什么字符,那么这可能会更准确<代码>文件
将在这种情况下疯狂猜测。hahaha@JoelFan形状文件描述了一个地理多边形,它广泛用于人口普查数据:p