Chaque solution pourra être pris à défaut selon les cas proposés.
Si on commence par imaginer des choses, alors pourquoi se limiter à de simples espaces avant, après, des fins de ligne manquantes, trait d'union etc ...
Pourquoi ne pas aller jusqu'au bout :
Bref, je m’arrête là pour cet exemple, mais il est possible de mixer les accents, les caractères accentués étranger etc ...
Soyons clair. Il n'existe pas de solution miracle. Ou alors il faudrait "développer une IA" capable d'interpréter les données et faire le rapprochement entre Bénédicte et Benedicte ... (1)
Bref, il est possible de ce prendre la tête des heures pour rien, mais si la donnée source ou les données de recherche ne sont pas justes, alors il n'est pas possible en l'état de faire une comparaison viable.
Pour répondre à mikell concernant le @CRLF de fin de fichier, certes celui-ci peut être manquant (bien que ce ne soit pas logique), mais dans ce cas il pourrait être judicieux de passer comme le suggère jguinchard et de faire un traitement dans les deux parties sur les espaces (ce qui limitera les risques d'erreurs, sans toutefois les supprimer totalement).
(1) Bien que je doute que Wardow ait besoin de passer par cet extrême, il pourrait être envisagé "une IA light" qui simplifierait les chaines de recherche/données en un modèle sans fioriture.
Genre :
Pour les espaces, c'est facile. Pour les caractères accentués, il faudra passer par une table de conversion.
En passant par ce type de traitement sur l'entrée et la donnée à comparer, on peut estimer un résultat sûr à 99% mais il existe encore et toujours des possibilités d'erreur.
