Si vous avez passé du temps avec le texte invisible, vous avez sans doute vu deux noms circuler : « caractère invisible » et « espace de largeur nulle ». Beaucoup les emploient comme s'ils signifiaient la même chose, mais ce n'est pas le cas, et la différence explique pourquoi une astuce qui marche dans une appli échoue dans une autre. Cet article clarifie cela en langage simple.

Tableau comparatif des caractères invisibles par code et largeur
Comment les principaux caractères invisibles se comparent par largeur, et à quoi sert chacun.

La réponse rapide

Un « espace de largeur nulle » est un caractère Unicode précis (U+200B). « Caractère invisible » est la catégorie générale à laquelle appartient l'espace de largeur nulle, aux côtés de plusieurs autres comme le remplisseur Hangul (U+3164), l'espace idéographique (U+3000) et le gluon de mots (U+2060). Donc tout espace de largeur nulle est un caractère invisible, mais tout caractère invisible n'est pas un espace de largeur nulle.

Ce que « largeur nulle » signifie vraiment

La largeur, en typographie, c'est l'espace horizontal qu'occupe un caractère. Une lettre normale a une largeur. Une espace normale aussi : vous voyez l'écart. Un caractère de largeur nulle n'en a aucune : il occupe une position dans le texte mais n'ajoute aucun espace horizontal. C'est ce qui rend U+200B spécial. Il permet de diviser ou joindre du texte de façon invisible, par exemple pour qu'un mot long passe à la ligne sans montrer d'écart.

Pourquoi certains caractères invisibles ont une largeur et d'autres non

Voici le cœur du sujet. L'espace idéographique (U+3000) est invisible au sens où il n'a pas de forme, mais il n'est pas de largeur nulle : il est assez large, conçu pour correspondre à l'espacement des caractères chinois, japonais et coréens. Le remplisseur Hangul se situe entre les deux. Donc quand quelqu'un dit « invisible », il veut parfois dire « sans forme » et parfois « sans largeur », et ce sont des choses différentes.

CaractèreCodeFormeLargeur
Espace de largeur nulleU+200BAucuneAucune
Remplisseur HangulU+3164AucunePetite
Espace idéographiqueU+3000AucuneLarge
Espace normaleU+0020AucuneNormale (mais supprimée)

Lequel devriez-vous utiliser ?

Cela dépend entièrement de l'appli :

  • Noms dans les jeux (Free Fire, PUBG) : le remplisseur Hangul l'emporte généralement, car sa petite largeur l'aide à survivre aux filtres qui refusent les caractères vraiment de largeur nulle.
  • Joindre ou diviser du texte de façon invisible (URL, code, retour à la ligne) : l'espace de largeur nulle, car il n'ajoute aucune largeur.
  • Un espace de taille visible qui ne soit pas une espace normale : l'espace idéographique.

C'est pourquoi notre générateur copie le remplisseur Hangul par défaut mais vous donne aussi un tableau Unicode complet : des tâches différentes ont besoin de caractères différents, et la seule façon d'en être sûr est de tester.

Une note sur la détection

Comme les caractères de largeur nulle sont totalement invisibles, on les utilise parfois pour cacher des messages ou marquer du texte. Si vous recevez un jour du texte au comportement étrange — caractères en trop à la suppression, sauts bizarres du curseur — collez-le dans notre outil détecteur pour voir combien de caractères cachés il contient et les supprimer.

Récapitulatif

« Espace de largeur nulle » est un caractère ; « caractère invisible » est toute la famille. La différence qui compte en pratique est la largeur : les caractères de largeur nulle n'ajoutent aucun espace et sont meilleurs pour joindre du texte, tandis que les invisibles de petite ou grande largeur survivent mieux aux filtres de noms. Choisissez le caractère selon la tâche, et utilisez le tableau Unicode pour tester.