E3 é o código hex do caractere ã em ISO-8859-1 (e também em sua versão
Microsoftiana, o Windows-1252).
Veja qual é o encoding usado do IDLE. O interpretador manda os bytes
para o shell, mas o shell pode não ser capaz de exibí-los corretamente,
em razão da codificação diferente.
No DOS, altera-se o codepage com o comando chcp. O codepage default do
DOS é o 437. Em geral, é melhor usar o 1252:
C:\> chcp 437
Página de códigos ativa: 437
C:\> \python24\python
>>> print '\xE7'
>>> ^Z
C:\> chcp 1252
Página de códigos ativa: 1252
C:\> \python24\python
>>> print '\xE7'
ç
>>> ^Z
Segue uma regex para capturar os caracteres acentuados usados no
português, em ISO-8859-1. Se quiser aumentar os ranges, é só olhar a
tabela do ISO-8859-1 ou outro charset que você queira usar. O kosis.net
tem todas as tabelas: http://www.kostis.net/charsets/
>>> import re
>>>
>>> ptbr = '\xc0-\xd6\xd9-\xdc\xe0-\xe4\xe7-\xef\xf2-\xf6\xf9-\xfc'
>>> re.findall('[\w\d%s]+' % ptbr, 'café, avião, caçador')
['caf\xe9', 'avi\xe3o', 'ca\xe7ador']
Mas a melhor solução está no módulo locale:
>>> import re, locale
>>>
>>> locale.setlocale(locale.LC_CTYPE , 'portuguese_brazil')
'Portuguese_Brazil.1252'
>>>
>>> ptbr = re.compile('[\w\d]+', re.LOCALE)
>>> ptbr.findall('café, avião, caçador')
['caf\xe9', 'avi\xe3o', 'ca\xe7ador']
--Jonas Galvez
===============================================================
Antes de enviar sua mensagem dê uma lida em:
http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar
===============================================================
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html