UnicodeDecodeError:无效的起始字节

时间:2015-03-04 15:29:58

标签: python python-3.x unicode

我有一个关于UnicodeDecodeError的快速问题:无效的起始字节。 我认为我文本中的某处有非UTF-8字符,但错误信息的位置是读取文件的起点,所以我不知道如何修复它。

如果您有任何建议,请告诉我

以下是我从python返回的错误消息。

for line in fi:
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/codecs.py", line 313, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte

以下是我的代码:

for filename in os.listdir(readDir):
    filename = os.path.join(readDir, filename)
    for keyword in keywords:
        outFileName = os.path.join(sortDir, keyword)
        outFileName = outFileName+'.csv'

        with open(filename, 'r') as fi, open(outFileName, "a") as fo:
            for line in fi:

1 个答案:

答案 0 :(得分:0)

我有同样的问题,经过一段时间的搜索后我做了什么

import sys

#Set default encoder 
sys.setdefaultencoding("ISO-8859-1")

#Then convert string to UTF-8
yourString.encode('utf-8').strip()

我希望它对某人有用