At the start of a python file (first line) sometimes I read
# -*- coding: utf-8 -*-
and sometimes I read
# encoding: utf-8
Both lines seem to do the same thing: specifying utf8 as encoding for all the text put in the file.
I have to questions:
- Why does this even work? I thought the interpreter ignores everything after a
#because it invokes a comment. - What is the difference between the two lines above? Does the interpreter just ignore the
-*-?
The two forms are equivalent. The
-*-version is a special kind of comment that Emacs understands. See PEP 263 for more information.If a comment like in either of these forms is one of the first two lines of a file, the interpreter will use the specified encoding to read the file.