在 python 中处理非 ascii 代码字符真的很令人困惑。谁能解释一下?
我正在尝试读取纯文本文件并将所有非字母字符替换为空格。
我有一个字符列表:
ignorelist = ('!', '-', '_', '(', ')', ',', '.', ':', ';', '"', '\'', '?', '#', '@', '$', '^', '&', '*', '+', '=', '{', '}', '[', ']', '\\', '|', '<', '>', '/', u'—')
对于我得到的每个令牌,我通过调用用空格替换该令牌中的任何字符
for punc in ignorelist:
token = token.replace(punc, ' ')
请注意,末尾有一个非 ascii 代码字符ignorelist
:u'—'
每次我的代码遇到该字符时,它都会崩溃并说:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position
我试图通过# -*- coding: utf-8 -*-
在文件顶部添加来声明编码,但仍然无法正常工作。有谁知道为什么?谢谢!