Кодировка для многоязычных файлов .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
на кодировку, в которой ваш редактор использует, чтобы сохранить исходный файл;
Какой редактор вы используете? Можете ли вы проверить настройки редактора, какие кодировки используются для сохранения данных?