= Receita: Removedor de Acentos = A função abaixo devolve cópia de uma str substituindo os caracteres acentuados pelos seus equivalentes não acentuados. Note que ela também remove os caracteres gráficos não-ASCII (por exemplo, o travessão), e estes são descartados, e não substituídos. == Código == === Python 2 === {{{ #!python #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Devolve cópia de uma str substituindo os caracteres acentuados pelos seus equivalentes não acentuados. ATENÇÃO: carateres gráficos não ASCII e não alfa-numéricos, tais como bullets, travessões, aspas assimétricas, etc. são simplesmente removidos! >>> remover_acentos('[ACENTUAÇÃO] ç: áàãâä! éèêë? íìĩîï, óòõôö; úùũûü.') '[ACENTUACAO] c: aaaaa! eeee? iiiii, ooooo; uuuuu.' ''' from unicodedata import normalize def remover_acentos(txt, codif='utf-8'): return normalize('NFKD', txt.decode(codif)).encode('ASCII', 'ignore') if __name__ == '__main__': from doctest import testmod testmod() }}} === Python 3 === {{{ #!python #!/usr/bin/env python3 ''' Devolve cópia de uma str substituindo os caracteres acentuados pelos seus equivalentes não acentuados. ATENÇÃO: carateres gráficos não ASCII e não alfa-numéricos, tais como bullets, travessões, aspas assimétricas, etc. são simplesmente removidos! >>> remover_acentos('[ACENTUAÇÃO] ç: áàãâä! éèêë? íìîï, óòõôö; úùûü.') '[ACENTUACAO] c: aaaaa! eeee? iiii, ooooo; uuuu.' ''' from unicodedata import normalize def remover_acentos(txt): return normalize('NFKD', txt).encode('ASCII', 'ignore').decode('ASCII') if __name__ == '__main__': from doctest import testmod testmod() }}} == Exemplo de uso == {{{ #!python >>> remover_acentos('[ACENTUAÇÃO] ç: áàãâä! éèêë? íìĩîï, óòõôö; úùũûü.') '[ACENTUACAO] c: aaaaa! eeee? iiiii, ooooo; uuuuu.' }}} Veja também a receita TiradorDeAcentos Volta para CookBook. ---- LucianoRamalho