Re: latin transliteration

Chema Cortes <[email protected]> Sun, 20 Dec 2009 03:19:03 +0100
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
El d=EDa 19 de diciembre de 2009 21:01, Rolando Espinoza La Fuente
<[email protected]> escribi=F3:
> Hola, =BFconocen alg=FAn m=F3dulo para "transliteration" que funcione cor=
rectamente?
>
> He probado todo lo que encontre y ninguno me da el resultado que quiero,
> por ejemplo: "am=E9rica" -> "america"
>
> Vean:
>
> In [3]: AsciiDammit.asciiDammit(u'am=E9rica'.encode('utf-8'))
> Out[3]: 'amAfArica'
>
> In [9]: unicodedata.normalize('NFKD', u'am=E9rica').encode('ASCII', 'igno=
re')
> Out[9]: 'amArica'
>
> In [10]: unidecode.unidecode(u'am=E9rica')
> Out[10]: u'amA(c)rica'


unicode.normalize() requiere un poco m=E1s de trabajo:

def slugify(s):
  from unicodedata import normalize
  return ''.join(normalize("NFD",c)[0] for c in s)

slugify(u"Am=E9rica") --> u"America"


+refs:
http://listas.aditel.org/archivos/python-es/2007-March/016813.html
http://listas.aditel.org/archivos/python-es/2007-April/016988.html
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes