Работа с кодировкой utf-8 в источнике Python

$ cat bla.py u = unicode('d…') s = u.encode('utf-8') print s $ python bla.py File "bla.py", line 1 SyntaxError: Non-ASCII character '\xe2' in file bla.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details 

Как я могу объявить строки utf-8 в исходном коде?

  • СинтаксисError символа не-ASCII
  • Изменение кодировки по умолчанию для Python?
  • UnicodeEncodeError: кодек ascii не может кодировать символ u '\ xe9' в позиции 7: порядковый номер не в диапазоне (128)
  • Как проверить, является ли строка unicode или ascii?
  • Как закодировать словарь python?
  • Почему Python не распознает исходный файл, закодированный utf-8?
  • Проблема с кодировкой при загрузке HTML с использованием mechanize и Python 2.6
  • UnicodeEncodeError: кодек ascii не может кодировать символ u '\ xe9' в позиции 7: порядковый номер не в диапазоне (128)
  • Кодек UCS-2 не может кодировать символы в позиции 1050-1050
  • Кодировка Stdout в python
  • Как предотвратить str для кодирования символов Unicode в виде шестнадцатеричных кодов?
  • В Python, как мне декодировать кодировку GZIP?
  • 2 Solutions collect form web for “Работа с кодировкой utf-8 в источнике Python”

    В заголовке источника вы можете объявить:

     #!/usr/bin/env python # -*- coding: utf-8 -*- .... 

    Он описан в PEP 0263 :

    Затем вы можете использовать UTF-8 в строках:

     #!/usr/bin/env python # -*- coding: utf-8 -*- u = 'idzie wąż wąską dróżką' uu = u.decode('utf8') s = uu.encode('cp1250') print(s) 

    Это заявление не требуется в Python 3, поскольку UTF-8 является исходной кодировкой по умолчанию (см. PEP 3120 ).

    Дополнительно к верхнему заголовку в исходном коде:

     #!/usr/bin/env python # -*- coding: utf-8 -*- 

    Не забудьте проверить, правильно ли ваш текстовый редактор правильно кодирует ваш код в utf-8. В противном случае у вас могут быть невидимые символы, которые не интерпретируются как utf-8.

    Python - лучший язык программирования в мире.