La tentative de "convertir" est la mauvaise approche du problème.
Tout d'abord, vous devez comprendre les limites de ce que vous essayez de faire. Comme d'autres l'ont souligné, les signes diacritiques sont là pour une raison: ils sont essentiellement propres lettres dans l'alphabet de cette langue avec leur propre sens / son etc.: la suppression de ces marques est juste le même que le remplacement aléatoire de lettres dans un mot d'anglais. C'est avant même d'aller sur l'considérer les langues utilisant l'alphabet Cyrillique et d'autres scripts, textes, telles que l'arabe, qui simplement ne peut pas être "converti" en anglais.
Si vous devez, pour quelque raison que ce soit, de convertir les caractères, alors la seule façon rationnelle de l'approche de ce il à tout d'abord de réduire l'ampleur de la tâche à portée de main. Prendre en considération la source de l'entrée - le si vous êtes le codage d'une application pour "le monde Occidental" (à utiliser aussi bien une phrase que tout), il serait peu probable que vous avez besoin pour analyser les caractères arabes. De même, le jeu de caractères Unicode contenant des centaines de mathématiques et le dessin des symboles: il n'existe pas de moyen (facile) pour les utilisateurs d'entrer directement, de sorte que vous pouvez supposer qu'il peut être ignoré.
En prenant ces étapes logiques vous pouvez réduire le nombre de caractères possibles pour analyser au point où un dictionnaire de la fonction de recherche / remplacement opération est réalisable. Il devient alors une petite quantité de légèrement ennuyeux travail de création de dictionnaires, et une tâche triviale pour effectuer le remplacement. Si votre langue prend en charge les caractères Unicode (comme Java) et optimise les structures statiques correctement, comme trouver et remplace tendance à être absolument rapide.
Cela vient de l'expérience d'avoir travaillé sur une application qui a été nécessaire pour permettre aux utilisateurs finaux de rechercher les données bibliographiques qui comprenait des caractères diacritiques. La recherche de tableaux (comme il l'a été dans notre cas) a pris peut-être 1 jour à produire, afin de couvrir tous les signes diacritiques pour toutes les langues d'europe Occidentale.