Normalisation d'Unicode
Les chaînes Unicode contiennent souvent des caractères composites qui sont représentés comme une séquence de deux points de code ou plus. Ces composites peuvent parfois être normalisés en entités plus simples à point de code unique.
Problème
Le module unicodedata fournit un moyen pratique d'accéder aux informations sur les caractères Unicode. Cependant, parcourir manuellement les caractères et remplacer les composites par leurs équivalents non composites peut s'avérer inefficace et sujet aux erreurs.
Solution
Pour normaliser une chaîne Unicode et convertir des composites dans leur forme la plus simple, utilisez la fonction unicodedata.normalize() avec l'option 'NFC' (Normal Form Composed). Ce formulaire remplace les caractères composites par leurs homologues précomposés.
Par exemple :
>>> import unicodedata >>> char = "á" >>> unicodedata.normalize('NFC', char) == "á" True
À l'inverse, l'option 'NFD' (Normal Form Decomposed) convertit les caractères précomposés dans leur forme décomposée :
>>> char = "á" >>> unicodedata.normalize('NFD', char) == "a\u0301" True
Normalisation supplémentaire Formulaires
En plus du NFC et du NFD, il existe deux formulaires de normalisation supplémentaires :
Exemple :
>>> char = "Ⅷ" >>> unicodedata.normalize('NFKC', char) == "VIII" True
Remarque : La normalisation n'est pas toujours réversible ; décomposer un caractère en NFD puis le recomposer en NFC peut ne pas toujours aboutir à la séquence de caractères d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!