If a comment in the first or second line of the Python script matches
the regular expression coding[=:]\s*([\w-_.]+), this comment is
processed as an encoding declaration; the first group of this
expression names the encoding of the source code file. The recommended
forms of this expression are
# -*- coding: <encoding-name> -*-
which is recognized also by GNU Emacs, and
# vim:fileencoding=<encoding-name>
which is recognized by Bram Moolenaar's VIM. In addition, if the first
bytes of the file are the UTF-8 byte-order mark
('\xef\xbb\xbf'), the declared file encoding is UTF-8
(this is supported, among others, by Microsoft's notepad).
If an encoding is declared, the encoding name must be recognized by
Python. The encoding is used for all lexical analysis, in particular to find
the end of a string, and to interpret the contents of Unicode literals.
String literals are converted to Unicode for syntactical analysis,
then converted back to their original encoding before interpretation
starts. The encoding declaration must appear on a line of its own.