Maison > développement back-end > Tutoriel Python > Comment puis-je normaliser les chaînes Unicode en Python pour garantir une longueur cohérente ?

Comment puis-je normaliser les chaînes Unicode en Python pour garantir une longueur cohérente ?

Susan Sarandon
Libérer: 2024-11-28 16:25:11
original
398 Les gens l'ont consulté

How Can I Normalize Unicode Strings in Python to Ensure Consistent Length?

Normalisation des chaînes Unicode pour des représentations simplifiées

Problème :
En Python, lors de la conversion d'une chaîne contenant des signes diacritiques, tels que "á, " nous observons des incohérences. La longueur de la chaîne est de 1 ou 2 caractères, selon que le signe diacritique est représenté comme un point de code unique ou une séquence de points de code composites.

Solution :
Pour garantir la cohérence normalisation, utilisez la fonction .normalize() du module unicodedata. Cette fonction convertit une chaîne Unicode en sa représentation Normal Form Composed (NFC). Le formulaire NFC combine des caractères composites comme "á" en un seul point de code, éliminant ainsi l'incohérence dans la longueur de la chaîne.

import unicodedata

# Convert to NFC form to combine diacritics
char = "á"
normalized_char = unicodedata.normalize('NFC', char)
print(len(normalized_char))  # Output: 1
print(unicodedata.name(normalized_char))  # Output: LATIN SMALL LETTER A WITH ACUTE
Copier après la connexion

Formulaires de normalisation :
Le module unicodedata propose différents formulaires de normalisation , chacun avec une approche différente de la représentation des personnages :

  • NFC (Normal Form Composé) : Combine les caractères composites en un seul point de code.
  • NFD (Normal Form Decomposed) : Décompose les caractères composites dans leur forme combinée.
  • NFKC (Normal Form Composed Compatibility) : Combine les caractères et remplace les caractères de compatibilité par leur canonique form.
  • NFKD (Normal Form Decomposed Compatibility) : Décompose les caractères et remplace les caractères de compatibilité par leur forme canonique.

Considérations supplémentaires :

  • Sachez que certains personnages composés ne sont pas décomposables et peuvent ne pas donne la même chaîne après normalisation.
  • Référez-vous au tableau d'exclusion de composition Unicode pour comprendre ces exceptions.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal