Commencer par un exemple intact
Copiez la valeur reçue exactement dans une référence conservée et dans une copie de travail. Notez son origine et l’échec observé : égalité visuelle, copier-coller, correspondance de recherche, URL, règle de formulaire ou parseur. Indiquez aussi si emojis, jointures, sélecteurs de variation, formes de largeur et écritures non latines sont valides dans ce champ.
Rendre les différences visibles
Utilisez hex-unicode-converter pour exposer une représentation orientée points de code. Utilisez emoji-extractor pour les emojis et positions, special-character-validator pour la ponctuation et les symboles, et text-fake-detector pour les indices heuristiques concernant invisibles, espaces atypiques et homoglyphes courants. Ce sont des signaux de diagnostic, pas la preuve qu’un caractère multilingue est erroné.
Choisir la branche avant de modifier
Si la valeur est un domaine, comparez le label lisible au résultat ASCII de punycode-encoder et utilisez punycode-decoder pour inspecter un label ASCII existant. Si le problème est la largeur, choisissez uniquement le sens exigé par le consommateur. Aucune branche ne prouve à elle seule la sécurité ou la compatibilité applicative.
Garder le nettoyage explicite
Utilisez zero-width-remover ou text-emoji-remover uniquement sur la copie de travail et après avoir décidé ce qui peut être supprimé. Préservez les espaces qui ont une fonction de mise en page et soyez prudent avec les jointures des séquences emoji. Ne transformez pas une suggestion du détecteur en remplacement non relu.
Vérifier la frontière qui a réellement échoué
Répétez les outils de diagnostic et comparez représentations, compteurs et emojis à conserver. Testez ensuite la copie dans le champ de recherche, le parseur d’URL, le formulaire ou l’analyseur réel. N’acceptez que si le comportement est corrigé et que chaque différence restante est expliquée.