Откуда это взялось: - * - кодировка: utf-8 - * - - PullRequest
116 голосов
/ 02 февраля 2011

Python распознает следующее как инструкцию, которая определяет кодировку файла:

# -*- coding: utf-8 -*-

Я определенно видел такие инструкции раньше (-*- var: value -*-).Откуда это взялось?Что такое полная спецификация, например, может ли значение включать пробелы, специальные символы, символы новой строки и даже -*-?

Моя программа будет писать простые текстовые файлы, и я хотел бы включить в них некоторые метаданные сэтот формат.

Ответы [ 3 ]

76 голосов
/ 02 февраля 2011

Этот способ задания кодировки файла Python происходит от PEP 0263 - Определение кодировок исходного кода Python .

Он также распознается GNU Emacs (см. Python LanguageСсылка, 2.1.4 Декларации кодирования ), хотя я не знаю, была ли это первая программа, использующая этот синтаксис.

7 голосов
/ 14 августа 2011

Это так называемые локальные переменные файла, которые понимаются Emacs и устанавливаются соответственно.Смотрите соответствующий раздел в руководстве по Emacs - вы можете определить их либо в заголовке, либо в нижнем колонтитуле файла

5 голосов
/ 17 августа 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...