代码可在此下载: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