Проблема не в Python, а в вашем текстовом редакторе. Python по умолчанию считывает ваш файл как UTF-8, но так как ваш файл не является UTF-8, это терпит неудачу.
Если вы редактируете файл как cp1252 или аналогичные устаревшие кодовые страницы Windows, •
кодируется в \x95
. Это недопустимый код UTF-8, потому что символы UTF-8 всегда либо меньше 0x80, либо начальный байт> = 0xC0. Отсюда и ошибка. (UTF-8 для •
равен \xe2\x80\xa2
.)
Если вы как-то настроили Eclipse для редактирования исходного кода, используя кодировку по умолчанию вашей системы вместо UTF-8, исправьте это. В этом вопросе показано, как изменить настройки по умолчанию для разных языков для различных версий Eclipse, но короткая версия такова: Preferences | General | Workspace | Text File Encoding
или Preferences | General | Editors | Text editors
. Где-то под Editor
также есть переопределения для каждого языка, и вы также можете установить переопределение для каждого проекта.
Другая возможность: Eclipse по умолчанию автоматически определяет кодировку для существующих файлов и сохраняет ее, вместо использования собственной предпочтительной кодировки. Поскольку вы работаете в Windows, вполне возможно, что вы изначально создали файл с помощью Блокнота (или другого редактора Windows, не предназначенного для программирования), который по умолчанию соответствует "кодовой странице OEM" вашей системы.
Если это так, не делайте этого. Никогда не трогайте исходный код Блокнотом. В то время как вы можете заставить Notepad экспортировать файлы в формате UTF-8, это неприятно (и тогда у вас просто возникнут проблемы с префиксами \xef\xbb\xbf
UTF-8-SIG во всех ваших файлах). Если вы не хотите использовать Eclipse для редактирования какой-либо причины, подойдет практически любой другой бесплатный текстовый редактор.
Если это проблема, чтобы ее исправить, вам просто нужно вручную сохранить файл в формате UTF-8 один раз, и с этого момента он автоматически определится как UTF-8 и будет работать правильно.
В качестве альтернативы, вы могли бы оставить файл в cp1252 или в другом месте и использовать декларацию кодирования PEP-263, как указано в сообщении об ошибке, чтобы переопределить UTF-8 по умолчанию. Но вы будете намного счастливее, переходя на UTF-8.