Кодировка для многоязычных файлов .py

Я пишу файл .py, который содержит строки из нескольких наборов символов, включая английский, испанский и русский. Например, у меня есть что-то вроде:

string_en = "The quick brown fox jumped over the lazy dog."  
string_es = "El veloz murciélago hindú comía feliz cardillo y kiwi."
string_ru = "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!"

Мне трудно понять, как закодировать мой файл, чтобы избежать генерации синтаксических ошибок, подобных приведенным ниже, когда мой файл запущен:

SyntaxError: Non-ASCII character '\xc3' in file example.py on line 128, but no encoding
declared; see http://www.python.org/peps/pep-0263.html for details

Я попытался добавить # -*- coding: utf-8 -*- в начало моего файла, но не повезло. Я также попытался маркировать мои строки как unicode (т.е. string_en = u'The quick brown fox jumped over the lazy dog."), снова безуспешно.

Можно ли включать символы из разных кодеков Python в один файл, или я пытаюсь сделать что-то, что не разрешено?

Ответ 1

Существует два аспекта правильной кодировки строк в вашем случае использования:

  • Чтобы Python понял, что вы используете кодировку UTF-8, вы должны включить в первую или вторую строку своего кода строку, которая выглядит как # coding=utf-8. Подробнее см. PEP 0263.

  • Ваш редактор также должен использовать UTF-8. Для этого требуется настроить его и зависит от используемого редактора. Конфигурация Emacs и Vim адресуется в одном PEP, Eclipse может по умолчанию использовать кодировку файловой системы, которая сама может быть получена из ваших настроек локали и т.д.

Ответ 2

Вы должны добавить # -*- coding: XXXX -*- в начало файла, заменив XXXX на кодировку, в которой ваш редактор использует, чтобы сохранить исходный файл;

Какой редактор вы используете? Можете ли вы проверить настройки редактора, какие кодировки используются для сохранения данных?