Это действительно запутанно обрабатывать не-ascii-код char в python. Может ли кто-нибудь объяснить?
Я пытаюсь прочитать простой текстовый файл и заменить все неалфавитные символы пробелами.
У меня есть список символов:
ignorelist = ('!', '-', '_', '(', ')', ',', '.', ':', ';', '"', '\'', '?', '#', '@', '$', '^', '&', '*', '+', '=', '{', '}', '[', ']', '\\', '|', '<', '>', '/', u'—')
для каждого токена, который я получил, я заменяю любой char в этом токене с помощью пробела, вызывая
for punc in ignorelist:
token = token.replace(punc, ' ')
обратите внимание на символ символа non ascii в конце ignorelist
: u'—'
Каждый раз, когда мой код встречает этот символ, он падает и говорит:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position
Я попытался объявить кодировку, добавив # -*- coding: utf-8 -*-
в начало файла, но все же не работая. кто знает почему? Спасибо!