associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

CodificacaoDosWindows

A codificação padrão para impressão de texto no "Prompt de comando" do DOS das plataformas Microsoft Windows é "# coding: cp850" incluído no início do bloco de código.

Por exemplo:

   1 # coding: cp850
   2 ar = raw_input('áéíóúäããù')
   3 # áéíóúäããù

Abaixo algumas saídas erradas com outras codificações:

   1 # coding: iso-8859-1
   2 ar = raw_input('áéíóúäããù')
   3 # ßÚݾ·õÒÒ¨

   1 # coding: utf-8
   2 ar = raw_input('áéíóúäããù')
   3 # ├í├®├¡├│├║├ñ├ú├ú├╣ 

Para entrada por linha-de-comando, o DOS utiliza (sem nenhuma razão explicável) outro tipo de codificação, que é a windows-1252.

Por exemplo:

   1 # coding: cp850 ou coding: utf-8
   2 import sys
   3 er = sys.argv[1]
   4 ar = er.decode('windows-1252')
   5 print ar
   6 
   7 # C:\Python24>python codif.py áéíóúäããù
   8 # áéíóúäããù

Abaixo a saída errada com a codificação padrão de texto do DOS:

   1 # coding: cp850 ou coding: utf-8
   2 import sys
   3 er = sys.argv[1]
   4 ar = er.decode('cp850')
   5 print ar
   6 
   7 # C:\Python24>python codif.py áéäãâ
   8 # ßÚõÒÔ

Obs.: A codificação é a mesma para o texto e para linha-de-comando em todas as plataformas em Linux.


LeonardoGregianin