Python 3 по умолчанию использует кодировку UTF-8 для файлов исходного кода. Следует ли мне по-прежнему использовать объявление кодировки в начале каждого исходного файла? подобно# -*- coding: utf-8 -*-
Python 3 по умолчанию использует кодировку UTF-8 для файлов исходного кода. Следует ли мне по-прежнему использовать объявление кодировки в начале каждого исходного файла? подобно# -*- coding: utf-8 -*-
Ответы:
Поскольку по умолчанию используется UTF-8, вам нужно использовать это объявление только тогда, когда вы отклоняетесь от значения по умолчанию или если вы полагаетесь на другие инструменты (например, вашу IDE или текстовый редактор) для использования этой информации.
Другими словами, что касается Python , только когда вы хотите использовать другую кодировку, вы должны использовать это объявление.
Другие инструменты, такие как ваш редактор, могут поддерживать аналогичный синтаксис, поэтому спецификация PEP 263 допускает значительную гибкость синтаксиса (это должен быть комментарий, текст coding
должен быть там, за которым следует либо символ :
или =
и необязательный пробел, с последующим признанным кодеком).
Обратите внимание, что это относится только к тому, как Python читает исходный код . Это не относится к выполнению этого кода, то есть к тому, как печать, открытие файлов или любые другие операции ввода-вывода переводятся между байтами и Unicode. Для получения более подробной информации о Python, Unicode и кодировках я настоятельно рекомендую вам прочитать Python Unicode HOWTO или очень подробный доклад Неда Батчелдера по Pragmatic Unicode .
UTF-8
по умолчанию.Для проектов с несколькими кодировками:
Если некоторые файлы закодированы в
non-utf-8
, то даже для них,UTF-8
вы должны добавить объявление кодировки, потому что золотое правилоExplicit is better than implicit.
настройка кодировки для конкретного файла в pycharm
# vim: set fileencoding=<encoding name> :
# -*- coding: utf-8 -*-
По- прежнему может быть полезным для некоторых редакторов , чтобы перейти к ожидаемому кодирующая при редактировании исходного файла.