Python 2.7 -在utf-8编码文件中替换不需要的字符时出现编码错误



代码可在此下载:https://github.com/kelrien/pyretrieval/

每当我执行example.py时,就会弹出以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "example.py", line 21, in <module>
    docs.append(proc.process(line.decode("utf-8")))
  File "pyretrievalprocessor.py", line 61, in process
    tokens = self.tokenize(string)
  File "pyretrievalprocessor.py", line 47, in tokenize
    temp = temp.replace(char, self.replace_characters[char])
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 0: ordinal not in range(128)

如您所见,在尝试替换我指定的德语变音符时发生错误。如果我不使用replace_characters字典并且忽略那些变音符,我就不会得到错误。

我已经尝试了很多东西:

    使用编解码器模块
  • 使用编码("utf-8")和解码("utf-8")在不同的

我找到了一个解决方案。我必须用unicode编码我想要替换的字符(在processor.py中)。

我已经将必要的更改推送到github。https://github.com/kelrien/pyretrieval

最新更新