Python: Declarar a codificação dos fontes (encoding)

Republicado de Codare.aurelio.net

Autor: Aurelio Jargas

Quando você coloca algum caractere acentuado no seu programa, por exemplo “á”, um aviso é mostrado na execução:

sys:1: DeprecationWarning: Non-ASCII character ‘\xe1’ in file foo.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

A codificação ASCII é o padrão para códigos fonte, então é preciso avisar o Python que seus fontes usam outra. Para o português é ISO-8859-1, ou seu similar mais curto latin-1. Basta colocar um comentário especial na primeira ou segunda linha do código:

# -*- coding: latin-1 -*-

Apesar de encorajado seu uso pela documentação, os -*- são desnecessários. Exemplo funcional:

# coding: latin-1
print "á"

Sistemas e editores atuais vêm configurados com a codificação UTF-8, que abrange a maioria dos idiomas existentes. Se este for seu caso, use:

# coding: utf-8

Comentários