De vez em quando a gente precisa remover acentos de uma string, por
exemplo, para tranformar o nome de uma cidade como "São Gonçalo" em
uma URL legível tipo http://exemplo.com.br/sao-goncalo em vez de uma
URL cheia de hexadecimais.
Outro dia num comentário do Python Cookbook eu achei este jeito de fazer:
from unicodedata import normalize
normalize('NFKD', txt.decode(codif)).encode('ASCII','ignore')
Um exemplo mais completo de uso está no PythonBrasil:
http://www.pythonbrasil.com.br/moin.cgi/RemovedorDeAcentos
[ ]s
Luciano
PS. Este método substitui as letras acentuadas pelas equivalentes sem
acentos, porém qualquer caractere que não tenha um equivalente ASCII é
descartado. Por exemplo, travessões, bullets e aspas tipográficas
(aquelas assimétricas), tudo isso é removido da string. Ou seja, serve
para limpar nomes de gente ou de cidades, mas não para limpar textos
completos.
On 11/08/2008, at 00:10, Luciano Ramalho wrote:
> De vez em quando a gente precisa remover acentos de uma string,
[...]
> Outro dia num comentário do Python Cookbook eu achei este jeito de
> fazer:
>
> from unicodedata import normalize
> normalize('NFKD', txt.decode(codif)).encode('ASCII','ignore')
Genial, Luciano! Não sabia que o Python tinha esse recurso
embutido! :)
--
Humberto Diógenes
http://humberto.digi.com.br