Python, por padrão, interpreta seus programas usando a codificação de caracteres ASCII. Tal codificação não é capaz de representar os caracteres acentuados (á, á, â, ã, …), que são muito utilizados na nossa língua portuguesa. Então, como escrever um comentário no código utilizando a grafia correta, sem precisar escrever ‘é’ como ‘eh’? Como escrever mensagens a serem passadas ao usuário utilizando acentuação nos caracteres? Como evitar que a mensagem de erro abaixo apareça como saída do programa?
File "foo.py", line 2 SyntaxError: Non-ASCII character '\xc3' in file foo.py on line 2, but no encoding declared;see http://www.python.org/peps/pep-0263.html for details
É preciso indicar ao Python qual é a codificação de caracteres que nosso arquivo de código está utilizando. Isso pode ser feito incluindo a seguinte linha de código no cabeçalho do arquivo.
# coding=<nome da codificação>
ou:
# -*- coding: <nome da codificação> -*-
As distribuições Linux, em sua maioria, utilizam a codificação UTF-8 para representação de caracteres. Assim, para utilizar caracteres com acentuação em um arquivo Python, usando Linux, é preciso adicionar ao começo* do arquivo:
# coding=UTF-8
ou:
# -*- coding: UTF-8 -*-
* A linha que indica a codificação pode ser a primeira linha do arquivo, ou a segunda, caso o arquivo contenha a indicação do binário do interpretador na primeira linha. Ex.:
#!/usr/bin/python # -*- coding: UTF-8 -*-
Mais informações em: http://www.python.org/dev/peps/pep-0263
Um comentário sobre “Acentuação em programas Python”
Deixe um comentário
Você precisa fazer o login para publicar um comentário.
Olá
Isso funciona perfeitamente para os programas de linha de comando ou GTK. Mas não consigo fazer isso funcionar nas páginas web geradas no Python, está no cabeçalho da página o -*-codin utf8-*- também. Alguma sugestão?