3

我做了很多文本解析,但似乎总是遇到解码问题。通常,我只是通过以下方式查找编码:

$ file -i filename.txt
filename.txt: text/x-diff; charset=utf-8

然后,通过我的读取行指定它(此处使用io显示)。

io.open(filename.txt, 'r', encoding='utf-8')

但是,每当我遇到新的文件编码时,我都会得到:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x0a in position 0: truncated data'

而且我必须重复手动检测和设置新编码的过程。有没有更好的方法来解析具有多个未知字符集的多个文件?我尝试了一个 try/except 块来成功使用两种编码,但是三个或更多呢?有没有自动检测方法?

4

1 回答 1

5

你可以使用这个 python 包: https ://pypi.python.org/pypi/chardet

它将尝试猜测编码,然后您可以继续进一步处理您的输入。

于 2013-05-06T19:56:20.217 回答