Compteur de mots
Compter mots, signes et temps de lecture.
Texte
Générer et détecter des caractères invisibles.
En français, les caractères invisibles ne sont pas un problème de bord mais une nécessité typographique.
La ponctuation double — point-virgule, deux-points, point d'exclamation, point d'interrogation — est précédée d'une espace en français, et cette espace doit être insécable.
Sans cela, le navigateur peut renvoyer le signe seul en début de ligne, ce qui saute aux yeux.
L'usage soigné distingue l'espace fine insécable, recommandée devant le point-virgule, le point d'exclamation et le point d'interrogation, et l'espace insécable ordinaire devant les deux-points et à l'intérieur des guillemets français.
Les traitements de texte français insèrent souvent ces espaces automatiquement, ce qui explique qu'un texte copié depuis un document en contienne beaucoup — et que ces espaces suivent ensuite dans des endroits où elles n'ont rien à faire, comme un champ de formulaire.
L'espace insécable sert aussi entre le nombre et l'unité, entre les tranches de milliers, et entre l'initiale et le nom.
| Caractère | Fonction |
|---|---|
| Espace insécable | empêche un retour à la ligne |
| Espace fine insécable | ponctuation double, plus serrée |
| Espace de largeur nulle | permet une coupure sans blanc |
| Trait d'union conditionnel | césure seulement si nécessaire |
| Liant de largeur nulle | contrôle la liaison des caractères |
C'est la raison pour laquelle il faut pouvoir les détecter.
En copiant depuis Word, un PDF ou une page web, vous entraînez régulièrement des caractères invisibles.
Dans les champs de formulaire, ils font qu'une adresse e-mail, un numéro ou un code promotionnel « manifestement correct » est refusé.
Dans un tableur, ils empêchent deux valeurs apparemment identiques d'être reconnues comme égales, et une recherche ne trouve pas ce qui est pourtant là.
Dans du code, ils sont particulièrement pénibles, car le compilateur renvoie une erreur sans rapport avec le vrai problème.
Et dans une base de données, ils entrent discrètement dans les enregistrements et ressortent plus tard, lors d'un rapprochement, sous forme d'écart inexpliqué.
Donc si quelque chose « devrait fonctionner » et ne fonctionne pas, chercher des caractères invisibles fait partie des premières vérifications rentables.
Quelques points utiles à connaître.
Des caractères invisibles servent à contourner des filtres, par exemple en écrivant un mot bloqué avec une espace de largeur nulle au milieu.
Ils servent aussi à marquer des documents : celui qui diffuse un document confidentiel à plusieurs destinataires peut donner à chacun une signature invisible et déterminer, en cas de fuite, quelle copie a circulé. C'est techniquement possible et juridiquement délicat, tant en droit du travail qu'en protection des données.
Un principe voisin opère avec les homoglyphes — des lettres cyrilliques ressemblant aux latines — dans les noms de domaine d'hameçonnage. Ce ne sont pas des caractères invisibles, mais le mécanisme est le même.
La conclusion pratique : si vous traitez des saisies d'utilisateurs, normalisez-les. Appliquez une normalisation Unicode, retirez les caractères de contrôle invisibles, et seulement ensuite comparez ou enregistrez.
Et dans un mot de passe, ils n'ont aucun intérêt : gain de sécurité quasi nul, et un jour ils vous empêcheront de le ressaisir.
Tout fonctionne dans votre navigateur.
C'est la typographie française, et elle doit être insécable pour éviter un rejet en début de ligne.
Un point de césure autorisé qui n'apparaît que si la coupure est nécessaire.
Souvent à cause de caractères invisibles entraînés en copiant depuis Word ou un PDF.
Techniquement oui, et c'est délicat en droit du travail comme en protection des données.
Les normaliser et retirer les caractères de contrôle avant de comparer ou d'enregistrer.
Non.