Aller au contenu
Ghostchars

Séparateurs de ligne

LINE SEPARATOR (U+2028)

Le caractère « nouvelle ligne ici » propre à Unicode, distinct du saut de ligne ASCII. Il termine une ligne sans terminer le paragraphe.

Point de code
U+2028
Supprimé par défaut
Non
Option qui le régit
Fins de ligne -n
Peut être porteur
Non

D’où il vient

Maj+Entrée dans la plupart des traitements de texte et des outils de mise en page, et tout ce qui exporte depuis eux. Les éditeurs de texte macOS et InDesign en sont de grands pourvoyeurs.

Pourquoi il compte

C’est une coupure de ligne que la plupart des logiciels orientés lignes ne reconnaissent pas. Les fichiers se découpent en un nombre de lignes inattendu, les lignes de CSV fusionnent et — c’est resté célèbre — un U+2028 brut dans une chaîne littérale JavaScript était autrefois une erreur de syntaxe, ce qui cassait le JSON intégré à du HTML.

Avant et après

Avantligne unU+2028ligne deux
Aprèsligne un ligne deux

Une coupure de ligne que votre éditeur de texte ne comptera peut-être pas comme telle.

Le caractère est affiché sous forme de pastille étiquetée, pour que vous voyiez où il se place. Dans votre texte, il ne dessine absolument rien.

Quand il est légitime

À l’intérieur d’un paragraphe qui a vraiment besoin d’un retour à la ligne, dans un logiciel qui le comprend. En texte brut, un saut de ligne est plus sûr et veut dire la même chose pour un lecteur.

Comment le supprimer

Activez l’option Normaliser les fins de ligne (`-n`) et il est replié en simple LF, comme CRLF, CR, NEL et U+2029.

Est-ce un filigrane d’IA ?

Ce n’est pas un filigrane

Non. Il vient des traitements de texte et des outils de mise en page. En trouver un vous dit que le texte est passé par un éditeur de texte enrichi.

Aucun lien avec un texte généré par une machine. Il vient d’un logiciel, d’un clavier ou d’une personne.

Questions

Pourquoi a-t-il cassé mon JavaScript ?

Avant ES2019, U+2028 et U+2029 n’étaient pas autorisés sans échappement dans les chaînes littérales : du JSON intégré directement dans une balise `script` pouvait échouer à l’analyse. Les moteurs modernes les acceptent ; les anciens et beaucoup d’outils, non.

Pourquoi n’est-il pas replié par défaut ?

Parce que changer les fins de ligne change le fichier. Ce doit être une décision que vous prenez, pas une décision qu’un nettoyeur prend pour vous.

Vérifier votre propre texte

Collez n’importe quoi dans le nettoyeur pour voir tous les caractères invisibles qu’il contient, avec leur position, leur point de code et ce qui arrive à chacun. Rien n’est envoyé.

Vérifier votre propre texteTous les caractères