Aller au contenu
Ghostchars

Ce que Ghostchars détecte

Toutes les catégories que le moteur sait signaler, l'option qui régit chacune, et les points de code qui ont leur propre page. Collez un texte dans le champ ci-dessous pour voir lesquels il contient.

Supprimé par la passe par défautConservé quand il est porteurDemande une option

Rien n'est envoyé. Le nettoyage a lieu sur cette page.

Votre texte est analysé dans le navigateur. Appuyez sur Nettoyer pour voir les résultats ci-dessous.

Niveau de nettoyage

Le niveau standard ne supprime que des caractères que vous ne voyez pas. Le niveau maximum réécrit aussi du texte visible : lettres sosies, guillemets, tirets et espacement. C'est donc un choix, pas un réglage par défaut.

Les réglages par défaut suppriment déjà tous les caractères invisibles qui ne servent à rien : caractères de largeur nulle, indicateurs d'ordre des octets, traits d'union conditionnels, opérateurs mathématiques invisibles, forçages bidi, caractères de balise et sélecteurs de variante isolés, non-caractères et autres contrôles de formatage. Tout ce qui suit va plus loin : soit cela modifie du texte que vous voyez, soit cela supprime des caractères qui font un vrai travail. C'est donc à vous de décider.

Espaces et mise en page

Les espaces insécables, fines et idéographiques deviennent un espace ordinaire. Désactivé parce qu'un espace insécable est souvent voulu.
CRLF, CR, NEL et les séparateurs Unicode de ligne et de paragraphe deviennent un simple saut de ligne.
Retire la barre qu'un terminal copie devant chaque ligne citée. Désactivé parce que les arborescences de dossiers utilisent la même barre.
Des espaces garés en fin de ligne peuvent coder un message caché (la technique SNOW).
Les doubles espaces entre les mots peuvent transporter des données binaires. Désactivé parce que cela casse les mises en page à chasse fixe.

Lettres et ponctuation

Le а cyrillique de « аpple » redevient un a latin. N'agit qu'à l'intérieur des mots qui mélangent les écritures : un texte russe ou grec ordinaire n'est donc pas touché. Désactivé par défaut parce que cela réécrit des lettres.
Tiret cadratin, guillemets courbes, points de suspension et signe moins deviennent de l'ASCII. Souvent présenté comme un « indice d'IA », alors que c'est aussi simplement de la bonne typographie.
Accents composés ou décomposés (é en un caractère ou en deux) : le choix peut coder des bits. NFC n'en retient qu'une forme.
Replie aussi les formes pleine chasse, les exposants et les ligatures. Change plus de choses qu'on ne l'imagine, et remplace NFC.

Contrôles

Nous supprimons déjà les forçages bidi, et les marques au milieu d'un texte de gauche à droite. Cette option supprime en plus celles qui accompagnent l'hébreu ou l'arabe, où elles font un vrai travail de mise en page.
Les contrôles C0 et C1 autres que la tabulation et le saut de ligne.
Casse les polices d'icônes et certains glyphes de marque, c'est-à-dire exactement là où ces caractères vivent.

Agressif

Supprime tous les liants de largeur nulle et tous les sélecteurs de variante, y compris ceux qui tiennent 👨‍👩‍👧 ensemble et ceux dont le persan, le hindi et les séquences de drapeau ont besoin. À n'utiliser que si vous voulez des lettres nues et rien d'autre.

ZWSPTAG U+E0053

Appuyez sur Nettoyer et nous vous montrerons exactement ce qui se cachait là-dedans : en langage clair d'abord, avec les points de code en dessous si vous les voulez.

Les tableaux ci-dessous disent sur quoi le moteur agit. Où le faire tourner est une autre question : si le texte est dans un fichier, le rapport du document ouvre un .docx, un .odt ou un .html dans votre navigateur et liste passages masqués, modifications suivies et métadonnées d'auteur à côté des caractères. Si c'est du texte que vous allez coller quelque part, l<extension>extension Chrome le nettoie dans le champ où vous tapez déjà</extension>.

Rien de tout cela ne concerne la façon dont le texte se lit. C'est le rôle du rapport de style : il mesure la variation des longueurs de phrase, les transitions toutes faites, les formules d'atténuation et la densité de tirets, et vous donne les chiffres sans note, sans probabilité et sans verdict sur la personne qui a écrit le texte.

Par catégorie

Les catégories sont testées dans cet ordre et la première correspondance l'emporte : c'est pourquoi un espace de largeur nulle est signalé comme caractère de largeur nulle et non comme contrôle de formatage générique.

Largeur nulle et invisibles

Régi par Passe par défaut (toujours actif)

Des caractères sans glyphe et sans chasse, qui sont de la contrebande partout dans un texte : espace de largeur nulle, liant de mots, trait d'union conditionnel, indicateur d'ordre des octets, les quatre opérateurs mathématiques invisibles, les contrôles de formatage obsolètes, les marques d'annotation interlinéaire, les contrôles de notation musicale et les non-caractères réservés à jamais par Unicode.

Point de codeNomPasse par défaut
U+200BZERO WIDTH SPACEOui
U+2060WORD JOINEROui
U+00ADSOFT HYPHENOui
U+FEFFZERO WIDTH NO-BREAK SPACEOui
U+2061FUNCTION APPLICATIONOui
U+2062INVISIBLE TIMESOui
U+2063INVISIBLE SEPARATOROui
U+2064INVISIBLE PLUSOui
U+034FCOMBINING GRAPHEME JOINEROui
U+180EMONGOLIAN VOWEL SEPARATOROui
U+2800BRAILLE PATTERN BLANKOui
U+3164HANGUL FILLEROui
U+FDD0-U+FDEFNONCHARACTERSOui

Forçages bidirectionnels

Régi par Passe par défaut (toujours actif)

Les cinq contrôles d'enchâssement et de forçage. Ils réordonnent un texte qui ne leur appartient pas, ce qui permet à un nom de fichier de s'afficher autrement qu'il n'est. Il n'existe aucun contexte dans lequel Ghostchars en conserve un.

Point de codeNomPasse par défaut
U+202ERIGHT-TO-LEFT OVERRIDEOui
U+202DLEFT-TO-RIGHT OVERRIDEOui
U+202ALEFT-TO-RIGHT EMBEDDINGOui
U+202BRIGHT-TO-LEFT EMBEDDINGOui
U+202CPOP DIRECTIONAL FORMATTINGOui

Marques bidirectionnelles

Régi par Marques bidi --bidi

Des indications de direction : les marques de gauche à droite et de droite à gauche, la marque de lettre arabe et les quatre isolants. À côté d'un texte de droite à gauche, elles lèvent une vraie ambiguïté et sont conservées ; dans un paragraphe anglais, ce sont des remplissages invisibles et un porteur de stéganographie publié, et elles partent.

Point de codeNomPasse par défaut
U+200ELEFT-TO-RIGHT MARKQuand il est isolé
U+200FRIGHT-TO-LEFT MARKQuand il est isolé
U+061CARABIC LETTER MARKQuand il est isolé
U+2066-U+2069BIDIRECTIONAL ISOLATESQuand il est isolé

Liants, sélecteurs et remplisseurs

Régi par Agressif -a

Des caractères invisibles qui s'accrochent au caractère qui précède ou qui suit : liant et non-liant de largeur nulle, sélecteurs de variante, caractères de balise, et les remplisseurs propres au mongol, au khmer et au hangul. Conservés quand leurs voisins les rendent porteurs, supprimés quand ils sont isolés.

Point de codeNomPasse par défaut
U+200DZERO WIDTH JOINERQuand il est isolé
U+200CZERO WIDTH NON-JOINERQuand il est isolé
U+FE00-U+FE0FVARIATION SELECTORSQuand il est isolé
U+E0000-U+E007FTAG CHARACTERSQuand il est isolé
U+180B-U+180DMONGOLIAN FREE VARIATION SELECTORSQuand il est isolé
U+17B4-U+17B5KHMER INHERENT VOWELSQuand il est isolé
U+115F-U+1160HANGUL JAMO FILLERSQuand il est isolé

Tout autre contrôle de formatage

Régi par Passe par défaut (toujours actif)

Le filet de sécurité. Tout caractère restant dont la catégorie générale Unicode est Cf est supprimé : un contrôle de formatage ajouté dans une future version d'Unicode est donc attrapé sans changement de code. Les exceptions orthographiques (signes de nombre arabes, marque d'abréviation syriaque, signe de nombre kaithi) sont testées plus tôt et laissées en place.

Détecté par propriété Unicode plutôt qu'à partir d'une liste : il n'y a donc pas d'ensemble fixe de points de code à énumérer.

Caractères à usage privé

Régi par Caractères à usage privé --pua

Des points de code qu'Unicode n'attribuera jamais, dont le sens est un accord privé entre une police et une application. Les polices d'icônes vivent là, et c'est pourquoi leur suppression se demande explicitement : dans une interface, ce sont eux, le contenu.

Point de codeNomPasse par défaut
U+E000-U+F8FFPRIVATE USE AREANon

Espaces exotiques

Régi par Espaces -s

Les espaces qui ne sont pas U+0020 : insécable, fine, moyenne, idéographique, marque d'espace ogham et les onze espaces typographiques à chasse fixe. Ils sont remplacés par un espace ordinaire plutôt que supprimés, parce qu'ils séparent des mots.

Point de codeNomPasse par défaut
U+00A0NO-BREAK SPACENon
U+202FNARROW NO-BREAK SPACENon
U+205FMEDIUM MATHEMATICAL SPACENon
U+3000IDEOGRAPHIC SPACENon
U+1680OGHAM SPACE MARKNon
U+2000-U+200AGENERAL PUNCTUATION SPACESNon

Séparateurs de ligne

Régi par Fins de ligne -n

Les séparateurs de ligne et de paragraphe d'Unicode et le NEL hérité d'EBCDIC. Repliés en un simple saut de ligne plutôt que supprimés : les supprimer collerait deux lignes ensemble.

Point de codeNomPasse par défaut
U+2028LINE SEPARATORNon
U+2029PARAGRAPH SEPARATORNon
U+0085NEXT LINENon

Caractères de contrôle

Régi par Caractères de contrôle --controls

Les codes de contrôle C0 et C1, hors tabulation, saut de ligne et retour chariot. Leur présence dans un texte signale en général un accident de décodage ou une sonde délibérée.

Point de codeNomPasse par défaut
U+0000-U+001FC0 CONTROL CHARACTERSNon
U+0080-U+009FC1 CONTROL CHARACTERSNon

Ponctuation typographique

Régi par Ponctuation --punct

Guillemets courbes, tirets cadratins et demi-cadratins, points de suspension, signe moins et primes. Rien n'est caché ici, ce sont des caractères visibles, mais ce sont d'autres points de code que leurs formes ASCII, et le choix droit ou courbe est un canal publié d'un bit par apostrophe.

Point de codeNomPasse par défaut
U+2013EN DASHNon
U+2014EM DASHNon
U+2019RIGHT SINGLE QUOTATION MARKNon
U+2026HORIZONTAL ELLIPSISNon

Barres de citation du terminal

Régi par Barres de citation --gutters

La barre qu'un terminal trace à gauche d'une citation, et qui est copiée comme du texte au début de chaque ligne avec la citation. Une barre ne compte que si elle ouvre sa ligne et que le même caractère ne réapparaît pas plus loin sur cette ligne : un tableau dessiné avec des caractères de cadre reste intact. Elle part avec l'espace qui la suit. En option, parce qu'une arborescence de dossiers affichée dans un terminal commence ses lignes par la même barre.

Point de codeNomPasse par défaut
U+2502│ BOX DRAWINGS LIGHT VERTICALNon
U+2503┃ BOX DRAWINGS HEAVY VERTICALNon
U+258C▌ LEFT HALF BLOCKNon
U+258D▍ LEFT THREE EIGHTHS BLOCKNon
U+258E▎ LEFT ONE QUARTER BLOCKNon
U+258F▏ LEFT ONE EIGHTH BLOCKNon

Lettres sosies

Régi par Lettres sosies --confusables

Des lettres cyrilliques, grecques, arméniennes, cherokees, pleine chasse et mathématiques dessinées exactement comme des lettres latines. La table de correspondance compte 1 513 entrées générées à partir des données de confusables d'Unicode, et une lettre ne compte que si elle se trouve à l'intérieur d'un mot à écritures mélangées, c'est-à-dire d'une suite de lettres qui contient aussi une lettre ou un chiffre ASCII, comme « аpple ». Un mot entièrement cyrillique ou grec n'est jamais signalé ni jamais réécrit. Sur demande quand même, parce que cela réécrit des lettres que vous voyez.

Point de codeNomPasse par défaut
U+0430CYRILLIC SMALL LETTER ANon
U+043ECYRILLIC SMALL LETTER ONon
U+0435CYRILLIC SMALL LETTER IENon
U+0441CYRILLIC SMALL LETTER ESNon

Les options

La passe par défaut ne demande aucune option et fonctionne toujours. Tout le reste est désactivé tant que vous ne l'activez pas, et chacune de ces options modifie du texte que vous voyez. C'est exactement pour cela qu'elle est désactivée.

OptionOption CLICe qu'elle faitPourquoi ce n'est pas le comportement par défaut
Passe par défaut(toujours actif)Caractères de largeur nulle, indicateur d'ordre des octets, traits d'union conditionnels, opérateurs mathématiques invisibles, forçages bidi, caractères de balise isolés, sélecteurs de variante isolés, non-caractères, tous les contrôles de formatage Cf restants, et les liants isolés.Toujours active. Rien de ce qu'elle supprime n'est visible ni porteur.
Agressif-aSupprime les liants même là où ils sont porteurs.Casse les emojis famille, l'orthographe persane et indienne, les drapeaux de subdivision et les variantes de glyphes CJC.
Espaces-sRemplace les espaces insécables et exotiques par un espace ordinaire.Un espace insécable fait en général son travail : ponctuation française, « 10 km », mise en page CJC.
Fins de ligne-nReplie CRLF, CR, NEL, U+2028 et U+2029 en un simple saut de ligne.Changer les fins de ligne change le fichier, et certaines chaînes de traitement en dépendent.
Marques bidi--bidiSupprime les marques de direction et les isolants même à côté d'un texte de droite à gauche.Casse la mise en page des textes mêlant hébreu, arabe et persan.
Caractères de contrôle--controlsSupprime les contrôles C0 et C1, en gardant la tabulation et les sauts de ligne.Rares dans un texte ordinaire ; leur présence signale en général un problème d'encodage qu'il vaut mieux corriger à la source.
Caractères à usage privé--puaSupprime les points de code des zones à usage privé.Les glyphes des polices d'icônes vivent là ; les supprimer vide les libellés de votre interface.
Ponctuation--punctConvertit en ASCII les tirets cadratins et demi-cadratins, les guillemets courbes, les points de suspension et le signe moins.C'est de la typographie, pas de la dissimulation. La convertir rend le texte moins bon, pas plus humain.
Lettres sosies--confusablesAssocie 1 513 points de code sosies à leurs jumeaux latins, seulement à l'intérieur des mots à écritures mélangées.Cela réécrit des lettres que vous voyez. Un texte entièrement cyrillique, grec ou turc est laissé intact, mais un mot qui mélange les écritures est modifié : c'est donc à vous de le demander.
Barres de citation--guttersRetire la barre de citation qu'un terminal copie au début de chaque ligne, avec l'espace qui la suit.Une arborescence de dossiers ou un cadre dessiné en texte peut commencer ses lignes par la même barre.

Options sur tout le texte

Quatre autres options réécrivent des motifs plutôt que des caractères isolés : elles n'ont donc pas de catégorie propre.

Normaliser (NFC)

Compose une lettre et son accent en un seul point de code.

Elle change des octets qui sont déjà corrects, et elle ne met en échec la stéganographie par forme de normalisation que si vous la demandez.

--nfc

Normaliser (NFKC)

NFC, plus les lettres mathématiques stylisées, les ligatures et les formes pleine chasse repliées en équivalents simples.

Destructeur : 𝐠𝐫𝐚𝐬 devient gras et le style est perdu pour de bon.

--nfkc

Espaces de fin de ligne

Supprime les espaces et tabulations à la fin de chaque ligne.

Deux espaces en fin de ligne, c'est un saut de ligne forcé en Markdown.

--trailing

Fusionner les espaces

Réduit à un seul les suites d'espaces à l'intérieur d'une ligne, en gardant l'indentation.

Certains formats dépendent de ces suites : tableaux alignés, ASCII art, code.

--collapse

Chaque caractère qui a sa page

Chacun de ceux-ci a sa propre page : ce qu'il est, d'où il vient, quand il est légitime, et la réponse honnête à la question de savoir s'il s'agit d'un filigrane d'IA.

Parcourir l'index des caractères

Questions

Combien de caractères détecte-t-il ?

Les tables nomment exactement plusieurs centaines de points de code, et deux règles générales couvrent par propriété Unicode tous les contrôles de formatage restants et tous les points de code à usage privé : un caractère ajouté dans une future version d'Unicode est donc détecté sans changement de code. S'y ajoute la table des lettres sosies, qui couvre 1 513 points de code.

La passe par défaut est-elle sûre sur n'importe quel texte ?

Elle est conçue pour l'être : la passe par défaut ne supprime que des caractères invisibles ET qui ne font aucun travail dans leur contexte. Elle laisse tranquille tous les caractères visibles, y compris les espaces insécables, les guillemets courbes et les tirets cadratins. Si vous voulez les changer, il faut le demander.

Et si mon caractère n'est pas listé ici ?

Collez le texte dans l'outil et affichez ce qui est caché. Tout ce que le moteur sait classer est signalé avec sa position, son point de code, son nom Unicode et sa catégorie, qu'il ait ou non une page ici.

Statistiques anonymes ?

Ghostchars traite votre texte dans le navigateur et ne l'envoie jamais nulle part. Nous aimerions comptabiliser les pages vues avec un service de mesure auto-hébergé et sobre en cookies. Jamais le moindre contenu.