Avec python il est possible de supprimer les accents d'un string 's'. Pour cela, il faut d'abord changer le string en unicode (avec s1 = unicode(s,'utf-8')) pour ensuite utiliser unicodedata, illustration:
>>> import unicodedata>>> s = 'Découvrez tous les logiciels à télécharger'>>> s'D\xc3\xa9couvrez tous les logiciels \xc3\xa0 t\xc3\xa9l\xc3\xa9charger'>>> s1 = unicode(s,'utf-8')>>> s2 = unicodedata.normalize('NFD', s1).encode('ascii', 'ignore')>>> s2'Decouvrez tous les logiciels a telecharger'
Remarque: il est important de connaître l'encodage de s avant de le transformer en unicode sinon les accents ne seront pas correctement supprimés. Par exemple si on a obtenu le string en lisant un fichier il est possible que celui-ci soit encodé en iso-8859-1 dans ce cas il faut faire:
>>> s1 = unicode(s,'iso-8859-1')
au lieu de
>>> s1 = unicode(s,'utf-8')
dans le code ci-dessous.
Recherches associées
| Liens | Site |
|---|---|
| unicodedata | python doc |
| What is the best way to remove accents in a python unicode string? | stackoverflow |
| Python detect string byte encoding | stackoverflow |
| How do I check if a string is unicode or ascii? | stackoverflow |
