Supprimer les accents

@joekakone

Joseph Konka @joekakone

08/03/2026 · 3 min

Lorsque l'on manipule du texte en français, on est souvent confronté aux accents (é, à, î, etc.) et aux caractères spécifiques comme le "ç". Dans ce mini tutoriel nous allons apprendre à retirer les accents.

Ces caractères peuvent poser problème lors du nommage de fichiers, de la création d'URLs ou du stockage en base de données.

L'astuce : La normalisation Unicode#

L'astuce consiste à convertir la chaîne de caractères en ASCII. Pour cela on va faire appel au module unicodedata.

Le code#

#! /usr/bin/env python3
# coding : utf-8

import unicodedata

def clean(text):
    y = unicodedata.normalize('NFKD', text).encode('ASCII', 'ignore')
    return y.decode("utf-8")

sample_text = u"mà chàîne âvèc dès càräctères spéciâüx ça le fait"
cleaned_text = clean(sample_text)
print(cleaned_text)
Output
ma chaine avec des caracteres speciaux ca le fait

Comment ça fonctionne ?#

  1. Normalisation (NFKD) : Cette étape décompose les caractères accentués. Par exemple, le caractère "é" est transformé en deux entités : la lettre "e" et l'accent aigu séparé.
  2. Encodage ASCII : En encodant en ASCII avec l'option ignore, Python conserve le "e" (qui est un caractère ASCII valide) mais supprime l'accent (qui ne l'est pas).
  3. Décodage : On revient en utf-8 pour retrouver une chaîne de caractères (string) classique.

Vous savez à présent comment retirer les accents de vos textes. Rendez-vous très prochainement pour un nouveau tutoriel Python !

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue