http://www.python.org/dev/peps/pep-0263/

Defining the EncodingPython will default to ASCII as standard encoding if no other
encoding hints are given.

To define a source code encoding, a magic comment must
be placed into the source files either as first or second
line in the file, such as:

# coding=<encoding name>

or (using formats recognized by popular editors)

#!/usr/bin/python
# -*- coding: <encoding name> -*-

or

#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
ExamplesThese are some examples to clarify the different styles for
defining the source code encoding at the top of a Python source
file:

1. With interpreter binary and using Emacs style file encoding
comment:

#!/usr/bin/python
# -*- coding: latin-1 -*-
import os, sys
...

#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import os, sys
...

#!/usr/bin/python
# -*- coding: ascii -*-
import os, sys
...

2. Without interpreter line, using plain text:

# This Python file uses the following encoding: utf-8
import os, sys
...

3. Text editors might have different ways of defining the file's
encoding, e.g.

#!/usr/local/bin/python
# coding: latin-1
import os, sys
...

4. Without encoding comment, Python's parser will assume ASCII
text:

#!/usr/local/bin/python
import os, sys
...

5. Encoding comments which don't work:

Missing "coding:" prefix:

#!/usr/local/bin/python
# latin-1
import os, sys
...

Encoding comment not on line 1 or 2:

#!/usr/local/bin/python
#
# -*- coding: latin-1 -*-
import os, sys
...

Unsupported encoding:

#!/usr/local/bin/python
# -*- coding: utf-42 -*-
import os, sys
...