Dites que j'ai la chaîne "blöt träbåt"
qui a quelques a
et o
avec tréma et anneau ci-dessus. Je veux qu'il devienne "blot trabat"
aussi simplement que possible. Je l'ai fait quelques recherches et trouvé la méthode suivante: (. \u0308
pour trémas)Quel est un bon moyen de remplacer les caractères internationaux par leurs homologues latins de base en utilisant Python?
import unicodedata
unicode_string = unicodedata.normalize('NFKD', unicode(string))
Cela me donnera la chaîne en format unicode avec les caractères internationaux répartis en caractère lettre de base et en combinant maintenant pour obtenir ce retour à une chaîne ASCII je pourrais faire ascii_string = unicode_string.encode('ASCII', 'ignore')
et il ignorera simplement les caractères de combinaison, résultant dans la chaîne "blot trabat"
.
La question ici est: est-il une meilleure façon de le faire? C'est comme un détour, et je pensais qu'il y avait peut-être quelque chose que je ne connaissais pas. Je pourrais bien sûr l'inclure dans une fonction d'aide, mais je préférerais vérifier si cela n'existe pas déjà en Python.
"La chaîne ASCII" blöt träbåt "" est une contradiction. ASCII n'a pas de caractères accentués. Voulez-vous dire "La chaîne Unicode"? – MSalters
Hé, c'est exactement la même chose que je fais en C# ... –
Ouais je viens de réaliser que j'ai utilisé le mauvais terme. Il ne doit pas nécessairement être Unicode, cependant. Il peut être étendu ASCII (ce qui était ce que je voulais vraiment dire.) – Blixt