Normaliseur Unicode
La même chaîne visible peut être stockée sous différentes séquences d’octets selon qu’un accent existe comme un seul point de code ou comme une lettre plus un signe de combinaison. Ce normaliseur convertit le texte entre les quatre formes de normalisation Unicode (NFC, NFD, NFKC, NFKD) afin que vos chaînes se comparent proprement dans les bases de données, les index de recherche, les scripts de déduplication et les correspondances regex.
Comment normaliser le texte Unicode
-
1
Collez votre entrée
Insérez la chaîne : lettres accentuées, texte CJK, ligatures, tout ce qui semble incohérent.
-
2
Choisissez une forme
Choisissez NFC (composée, la forme web habituelle), NFD (décomposée), NFKC (composée de compatibilité) ou NFKD (décomposée de compatibilité).
-
3
Comparez les décomptes
L'outil indique le nombre de caractères (points de code) et la longueur en octets avant et après, pour que vous voyiez si la forme a raccourci ou allongé la chaîne.
-
4
Copiez la sortie normalisée
Utilisez le résultat dans votre base de données, votre charge utile API, votre générateur de slugs ou votre fixture de test.
Les quatre formes et quand utiliser chacune
La normalisation Unicode est définie par l’annexe standard UAX #15. Les quatre formes diffèrent selon deux axes : canonique face à compatibilité, et composée face à décomposée.
Référence côte à côte
| Forme | Composition | Correspondance | Quand l’utiliser |
|---|---|---|---|
| NFC | Composée | Canonique seule | Par défaut pour le contenu web, les bases de données, les noms de fichiers |
| NFD | Décomposée | Canonique seule | Traitement de texte qui retire les accents par caractère |
| NFKC | Composée | Inclut compat. | Recherche, identifiants, filtres anti-spam, pliage d’affichage |
| NFKD | Décomposée | Inclut compat. | Normalisation agressive avant le retrait des diacritiques |
Les formes canoniques préservent le sens
Tapez é et changez de forme. NFC indique 1 caractère et 2 octets (le point de code unique U+00E9), tandis que NFD indique 2 caractères et 3 octets (un e simple suivi d’un accent aigu de combinaison, U+0301). Les deux paraissent identiques à l’écran mais sont des séquences d’octets différentes, et c’est précisément cet écart que corrige la normalisation. Les formes canoniques ne font que réordonner les octets, si bien que é dans l’une ou l’autre forme signifie toujours la lettre e avec un accent aigu.
Ce que « compatibilité » change réellement
Les formes K (NFKC, NFKD) réécrivent aussi des caractères qui semblent apparentés mais portent un formatage différent. C’est une opération avec perte : vous ne pouvez pas retrouver l’original. Par exemple :
fi(U+FB01, ligature latine minuscule fi) devientfi(deux lettres)①(U+2460, chiffre un entouré) devient1㌀(U+3300, le carré CJK « apaato ») devientアパート- La
Apleine largeur (U+FF21) devientA
C’est puissant pour la recherche et la déduplication, mais destructeur pour la typographie, alors n’utilisez les formes K que lorsque la fidélité visuelle n’a pas d’importance.
Une règle pratique
- Stockez le contenu utilisateur en NFC.
- Comparez les identifiants en NFC pour que
caféécrit comme un seul point de code etcaféécrit commee+ U+0301 correspondent ; passez à NFKC quand vous voulez aussi quefietfi, ou laApleine largeur etA, se comparent comme égaux, comme le font les règles d’identifiants de UAX #31. - Produisez des slugs sans accent en normalisant en NFD puis en supprimant le bloc des signes de combinaison U+0300 à U+036F.
Questions fréquentes
Cela signifie en général que votre entrée était déjà dans la forme cible. Collez du texte qui mélange des sources (un nom de fichier Mac, un extrait de PDF copié, une ligne d’une ancienne base de données) et il est bien plus probable que vous voyiez changer le nombre de caractères et d’octets.
Pour les URL d’affichage, NFC. Pour des slugs où vous voulez de l’ASCII pur, normalisez en NFD, retirez les signes de combinaison avec une regex sur U+0300 à U+036F, puis mettez en minuscules. NFKD est une alternative quand vous voulez aussi replier les ligatures et les chiffres entourés.
Les formes canoniques (NFC, NFD) ne changent jamais le sens, elles ne font que réordonner les octets. Les formes de compatibilité (NFKC, NFKD), elles, le changent : les ligatures se séparent, les lettres pleine largeur se replient et les exposants s’aplatissent. Ne les utilisez que lorsque c’est ce que vous voulez.
La normalisation s’exécute sur notre serveur via la classe Normalizer de PHP et le résultat revient dans la même requête ; votre texte n’est pas conservé. Nous n’enregistrons qu’un événement anonyme indiquant quelle forme a été appliquée, jamais le contenu lui-même.
Outils similaires
Générateur de noms de famille aléatoires
Générez un lot de noms de famille aléatoires tirés des noms de famille les plus courants aux États-Unis. Uniquement des noms de famille, sans prénom.
Générateur de noms aléatoires
Générez jusqu'à 50 noms aléatoires en une série à partir de pools équilibrés, courts ou internationaux. Choisissez des noms complets, des prénoms seuls ou un prénom avec initiale.
Générateur de noms de villes
Générez des noms fictifs de villes, bourgs, villages et capitales pour le worldbuilding, les cartes, les jeux, les récits et les données factices, avec de courtes notes pour chaque résultat.
Symboles de flèches à copier
Copiez des flèches Unicode courantes en un clic : droites, doubles, diagonales, à crochet, circulaires et triangulaires pour documents, messageries et designs.
Traducteur de braille
Traduisez du texte en braille Unicode intégral (grade 1) et décodez le braille en lettres. Gère les majuscules, les chiffres et la ponctuation.
Générateur de police Instagram
Générez des "polices" Unicode (gras, italique, script, monospace, fraktur) qui se collent directement dans votre bio, nom, légendes et commentaires Instagram.
Outil disponible dans d’autres langues
- ตัวปรับข้อความให้เป็นมาตรฐาน Unicode [TH]
- مُطبِّع Unicode [AR]
- Unicode-normaliseerder [NL]
- Unicode-normaliserare [SV]
- Normalizator Unicode [PL]
- Unicode正規化ツール [JA]
- Penormal Unicode [ID]
- Normalizador Unicode [PT]
- Unicode-Normalisierer [DE]
- Normalizador Unicode [ES]
- 유니코드 정규화기 [KO]
- Bộ chuẩn hóa Unicode [VI]
- Unicode Normalizer [EN]
- Normalizzatore Unicode [IT]
- Нормализатор Unicode [RU]
- Unicode Normalleştirici [TR]
- Unicode 规范化工具 [ZH]