Кодировка для многоязычных .py файлов - PullRequest
11 голосов
/ 14 февраля 2011

Я пишу .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 в один файл или я пытаюсь сделать что-то, что не разрешено?

Ответы [ 2 ]

13 голосов
/ 14 февраля 2011

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

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

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

1 голос
/ 14 февраля 2011

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

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

...