2010-06-06 5 views
1

Je me suis amusé avec les sources de texte Unicode (tout codet correct) et je veux faire correspondre les noms. Le problème classique, une source vient correctement, un autre a plus aplatissent noms:Caractères de remplacement Unicode pour la correspondance de texte

« Elbląg » par rapport à « Elblag » (voir le caractère a)

Comment puis-je « aplatir » à, á, â ou à un pour mieux correspondre? Existe-t-il unicode pour les tables de correspondance ascii?

+0

langage de programmation? Si C/C++, Quelles bibliothèques pouvez-vous utiliser? – kennytm

+0

J'utilise python pour cette tâche ... Je pense que j'ai besoin d'une grande table d'affectation de caractères Unicode - je dois donc la convertir si elle provient d'une autre source. –

+0

Python 2.x ou 3.x? – kennytm

Répondre

2

Essayez

>>> unicodedata.normalize('NFKD', u'Elbląg').encode('ascii', 'ignore') 
'Elblag' 
+0

Thanx - tous les noms polonais correspondent! –

+0

Sachez que toutes les lettres latines accentuées n'ont pas de décomposition NFKD comme lettre ASCII + marque de combinaison. Par exemple, «ø» ne se décompose pas. – dan04

Questions connexes