Débarrassez votre texte de ses parasites invisibles.
Collez n'importe quoi. Nous trouvons les espaces de largeur nulle, les caractères de balise clandestins, les lettres sosies et les autres caractères que vous ne voyez pas, sans abîmer vos emojis ni vos textes multilingues au passage. C'est ça, un « filigrane IA » : celui qui tient dans les caractères, pas dans le choix des mots.
- Tourne dans votre navigateur
- Sans inscription
- Gratuit, sans limite
- Open source
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.
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.
Avancé(nettoyages supplémentaires, désactivés 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
Lettres et ponctuation
Contrôles
Agressif
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.
- Votre texte ne quitte jamais cette pageAucun envoi, aucun appel serveur, aucune mesure d'audience sur ce que vous collez. Coupez le wifi : la page fonctionne toujours.
- Gratuit, illimité, sans comptePas de plafond de caractères, pas de quota quotidien, pas de mur à adresse e-mail devant les résultats.
- 11 vraies techniques de dissimulation mises en échecBinaire en largeur nulle, contrebande par caractères de balise, octets cachés dans les sélecteurs de variante, espaces SNOW, binaire par lettres sosies et par NFC/NFD, et cinq autres.
- Le même moteur que la CLIL'outil Python et cette page partagent un seul jeu de règles : une vérification pre-commit et un collage dans le navigateur disent la même chose.
Collez, nettoyez, copiez.
C'est tout. Le reste de cette page est une lecture facultative.
Collez votre texte
Directement depuis une messagerie, un PDF, un outil de traduction, un assistant IA ou l'e-mail d'un collègue. Les caractères invisibles font le voyage avec lui, et c'est bien tout le problème.
Appuyez sur Nettoyer
Nous parcourons votre texte caractère par caractère et décidons, pour chacun des caractères suspects, s'il se cache ou s'il travaille. Les mots visibles ne sont jamais touchés.
Copiez la version propre
Un seul bouton. Si vous voulez les preuves, ouvrez le relevé : chaque caractère y figure avec sa position, son point de code et son nom Unicode officiel.
Le même nettoyage, sans cet onglet.
Le nettoyeur ci-dessus est gratuit et illimité, et le restera. Ces trois-là portent le même moteur là où votre texte se trouve déjà : une frappe, un clic droit, ou une commande.
Ghostchars pour Mac
Une application de barre de menus : sélectionnez du texte n'importe où sur votre Mac, appuyez sur le raccourci, et la version propre prend sa place. Ou laissez-la nettoyer à la copie, et ce que vous collez est déjà propre.
Le raccourci clavier et le nettoyage à la copie sont gratuits 20 fois par semaine ; la fenêtre de l'application et ses relevés ne sont jamais comptés.
L'installer sur MacGhostchars pour Chrome
Une fenêtre qui nettoie un collage sur n'importe quel site, et un menu contextuel qui remplace sur place le texte sélectionné. Activez le nettoyage au collage sur les sites où vous collez souvent : c'est la version propre qui arrive, à la place de celle que vous aviez copiée.
La fenêtre et le menu contextuel sont illimités, sur tous les sites ; le nettoyage au collage est gratuit 20 fois par semaine. Elle s'installe depuis le Chrome Web Store, dans Chrome, Edge, Brave, Arc, Opera.
Voir l'extensionGhostchars dans votre terminal
Un paquet npm avec le même moteur : nettoyez fichiers et documents depuis la ligne de commande, tenez un dépôt à un niveau en CI, et donnez les outils à votre agent de codage via MCP. Des fichiers de skill, un hook Claude Code et un bloc pre-commit sont livrés dedans.
Gratuit et sous licence MIT, Node 22 ou plus récent, et rien ne quitte votre machine : il n'y a aucun code réseau dans le paquet.
Voir la CLIUne licence pour tout : $24 une fois lève la limite hebdomadaire des deux côtés, sur 3 de vos appareils au maximum. Et tout ce site reste gratuit dans tous les cas.
Six familles de caractères que vous ne voyez pas.
Environ 26 types de caractères distincts, regroupés dans les familles qui se comportent vraiment différemment.
Caractères de largeur nulle
Ils ne prennent aucune place, survivent au copier-coller et peuvent coder un message entier en binaire. La façon classique de marquer un document destinataire par destinataire.
U+200B ZWSP · U+200C ZWNJ · U+200D ZWJ · U+2060 WORD JOINER · U+FEFF BOM
Contrôles bidi
Ils réorganisent l'affichage du texte. Inoffensifs à côté de l'hébreu ou de l'arabe ; ailleurs, c'est un moyen de faire lire un code source dans un sens et de le faire compiler dans un autre.
U+202A-202E · U+2066-2069 · U+200E LRM · U+200F RLM · U+061C ALM
Caractères de balise
Un alphabet ASCII fantôme. Une phrase entière peut tenir dans le plan 14 et n'afficher absolument rien : c'est le principe de la contrebande ASCII (ASCII smuggling) vers les assistants IA.
U+E0001 · U+E0020-E007E · U+E007F CANCEL TAG
Sélecteurs de variante
Ils servent normalement à choisir un style d'emoji ou de glyphe. Isolés, ils transportent un octet chacun, ce qui rend l'accrochage d'une longue charge invisible trivial sur n'importe quel caractère.
U+FE00-FE0F · U+E0100-E01EF
Espaces et séparateurs
Tous les espaces ne viennent pas de la barre d'espace. Remplacer un espace insécable par un espace ordinaire, ou laisser un espace de trop en fin de ligne, code des bits que personne ne voit.
U+00A0 · U+2000-200A · U+202F · U+205F · U+3000 · U+2028 · U+2029
Lettres sosies
Le а cyrillique n'est pas un a latin, et rien à l'écran ne vous le dit. Notre table compte 1 513 entrées générées à partir du fichier confusables.txt d'Unicode.
U+0430 а · U+043E о · U+0435 е · U+03BF ο · U+0456 і · U+FF41 a
Pourquoi vos emojis survivent.
Un même caractère peut être une cachette ou un élément porteur. Les outils qui suppriment au seul vu du point de code cassent des choses ; ceux qui jouent la prudence en laissent passer. Nous regardons les voisins.
Conservé : il tient la famille ensemble
Ce U+200D se trouve entre deux emojis. Supprimez-le et l'emoji famille se disloque en trois personnes séparées. Même caractère, même point de code, travail complètement différent.
Supprimé : il se cache entre deux lettres
Le même U+200D entre deux lettres latines ne joint rien. Il est là pour survivre à un copier-coller et transporter un bit du filigrane de quelqu'un.
🏴 reste un drapeau
Des caractères de balise épellent « gbsct » à l'intérieur du drapeau écossais. Les caractères de balise isolés sont supprimés ; ceux qui font partie d'une séquence de drapeau valide, non.
Le persan et le hindi gardent leurs liants
Un non-liant de largeur nulle à l'intérieur d'un mot persan change la façon dont les lettres s'attachent. Supprimez-le et vous avez écrit le mot de travers. Nous le gardons et nous vous signalons sa présence.
L'hébreu garde ses marques de direction
Une RLM à côté d'un texte hébreu fait un vrai travail de mise en page. Une RLM au milieu d'un texte anglais, non. Les deux sont U+200F.
Ce que cet outil ne peut pas faire.
Beaucoup de sites promettent de « supprimer les filigranes des IA ». Voici où le nettoyage de caractères s'arrête vraiment, pour que vous ne comptiez pas dessus pour quelque chose dont il n'a jamais été capable.
- Les filigranes statistiques restent en place. Des dispositifs comme SynthID-Text, de Google, sont inscrits dans le choix des mots par le modèle, pas dans un caractère. Rien de ce que nous retirons ne les atteint. Réécrire le texte, si.
- La stylométrie n'est pas concernée. Le rythme des phrases, le vocabulaire et la structure sont ce que lisent réellement les classificateurs de détection d'IA. Redresser vos guillemets n'y change rien.
- Ce qui se cache dans le format sort du cadre de cette page. Les métadonnées d'un DOCX, du blanc sur blanc dans un PDF, des commentaires HTML : tout cela vit dans le fichier, pas dans le texte. Collez le texte et nous nettoyons le texte ; pour le fichier entier, passez par la page Documents.
- Un tiret cadratin n'est pas une preuve. Nous pouvons convertir la ponctuation typographique à la demande, mais quelqu'un qui écrit bien utilise lui aussi des tirets cadratins. Voyez-y de la mise en forme, pas une preuve.
Ce que nous affirmons, en revanche : onze techniques publiées de stéganographie au niveau des caractères, chacune mise en échec en test, le texte visible ressortant octet pour octet identique.
Kris Vinters développe et maintient Ghostchars. La page À propos explique les règles qui encadrent ces limites.
Qu'est-ce qu'un « filigrane IA » au juste, et que peut-on vraiment retirer ?
Surtout des gens qui viennent de coller quelque chose.
Rédacteurs et étudiants
Votre texte est passé par trois applications avant d'arriver dans votre document. Nettoyez-le une bonne fois pour qu'un portail de dépôt ou un logiciel anti-plagiat ne s'étrangle pas sur des caractères que vous n'avez jamais tapés.
Traducteurs
Les outils de TAO et les moteurs de traduction automatique laissent derrière eux des insécables, des traits d'union conditionnels et des marques bidi égarées. Nettoyez la couche invisible sans toucher aux liants dont votre langue cible dépend.
Éditeurs et équipes CMS
Les textes des auteurs arrivent de Word, de Docs et de la messagerie. Normalisez-les avant qu'ils n'entrent en base, et gardez un rapport de ce qui a changé.
Développeurs
Lancez --check dans un hook pre-commit et faites échouer le commit dès qu'un caractère invisible ou un forçage bidi atterrit dans le code, la configuration ou un fichier de traduction.
Équipes sécurité et sûreté des IA
Inspectez les charges suspectées d'injection de prompt : voyez la phrase écrite en caractères de balise, les points de code et les décalages exacts avant de décider quoi faire de l'entrée.
Toute personne avec un fichier bizarre
Si un document a l'air normal mais se comporte bizarrement (la recherche échoue, le tri déraille, un nom refuse de correspondre), collez-le ici d'abord. C'est en général un caractère que vous ne voyez pas.
Voyez-le fonctionner
Le même nettoyage à trois endroits : ce site, l'extension de navigateur qui nettoie un collage directement dans le champ où vous écrivez déjà, et un raccourci clavier sur Mac qui nettoie le presse-papiers depuis n'importe quelle application. Les trois tournent sur votre propre machine.
Regarder
Ghostchars sur le web, dans Chrome et sur un Mac
30 secondes · Sous-titres inclus
Le même moteur, dans votre terminal.
strip_invisible.py est un unique fichier Python sans dépendances. Aucune installation, aucun paquet à qui faire confiance : téléchargez-le, lisez-le, lancez-le.
# Voir ce qui se cache, sans rien changer
python3 strip_invisible.py --show file.md
# Nettoyer sur place, et normaliser espaces et ponctuation au passage
python3 strip_invisible.py -i -s --punct draft.md
# Faire échouer le build si des caractères invisibles sont entrés dans le dépôt
python3 strip_invisible.py --check src/**/*.ts
# Les documents aussi : passages masqués, modifications suivies, métadonnées, rsids
python3 clean_file.py --show essay.docxCode de sortie 1 dès que quelque chose est trouvé : il se glisse tel quel dans un hook pre-commit ou une étape de CI. Chaque interrupteur du panneau Avancé ci-dessus correspond à une option.
Des questions légitimes.
Mon texte est-il envoyé quelque part ?
Non. Tout tourne en JavaScript sur cette page. Il n'y a aucune requête vers un serveur quand vous appuyez sur Nettoyer, et rien de ce que vous collez n'est journalisé ni conservé. Pour le vérifier, ouvrez l'onglet réseau de votre navigateur, ou coupez simplement Internet et utilisez la page hors ligne.
Est-ce que ça va casser mes emojis ?
Pas avec les réglages par défaut. Les liants de largeur nulle entre emojis, les sélecteurs de variante qui choisissent une présentation emoji et les caractères de balise à l'intérieur des séquences de drapeau sont tous reconnus comme porteurs et conservés, puis signalés pour que vous les voyiez. Le seul moyen de les supprimer est d'activer délibérément « Supprimer les liants même quand ils comptent » dans Avancé.
Est-ce que ça marche avec l'arabe, l'hébreu, le hindi ou le persan ?
Oui, et c'est la raison principale de l'existence de cet outil. Les non-liants de largeur nulle à l'intérieur des mots persans, les liants des écritures indiennes et les marques de direction à côté d'un texte de droite à gauche changent tous la façon dont le texte se lit : ils sont donc conservés par défaut. Les mêmes caractères flottant au milieu d'un texte anglais, eux, sont supprimés.
Peut-il supprimer un filigrane d'IA ?
Il supprime les filigranes au niveau des caractères : ceux qui cachent des données dans des points de code invisibles, des motifs d'espaces ou des lettres sosies. Il ne supprime pas les filigranes statistiques comme SynthID-Text, qui vivent dans le choix des mots, et il ne change pas la note qu'un classificateur de détection d'IA attribue à votre écriture. Tout outil qui prétend le contraire en promet trop.
Pourquoi un caractère est-il listé mais pas supprimé ?
Deux raisons. Soit il est porteur, et le supprimer changerait le rendu de votre texte ; soit il dépend d'un réglage désactivé par défaut parce qu'il modifierait du texte visible, comme les lettres sosies ou les guillemets courbes. Dans les deux cas, le relevé nomme le réglage exact qui le supprimerait, donc rien n'est ignoré en silence.
Qu'est-ce qu'une attaque par contrebande ASCII ?
Unicode contient un bloc de caractères dits « tag » (de U+E0000 à U+E007F) qui reproduisent l'ASCII mais ne s'affichent pas du tout. Une instruction complète peut y être écrite, collée dans un document, puis lue par un modèle de langue tout en restant parfaitement invisible pour la personne qui relit. Nous supprimons par défaut les caractères de balise isolés et nous vous montrons ce qu'ils épelaient.
Quelle est la différence entre NFC et NFKC ?
NFC retient une seule orthographe pour les caractères accentués : é comme un point de code unique plutôt que e suivi d'un accent combinant. Choisir au hasard entre les deux formes est en soi une façon de coder des bits. NFKC va plus loin et replie aussi les lettres pleine chasse, les ligatures et les exposants en équivalents simples, ce qui est plus agressif que ce que la plupart des textes demandent.
Y a-t-il une limite à la quantité de texte que je peux nettoyer ?
Aucun quota et aucun compte. La limite pratique, c'est votre navigateur. Quelques centaines de milliers de caractères passent sans problème, et au-delà la version en ligne de commande convient mieux : elle traite les fichiers en flux et gère des dossiers entiers.
Le nettoyage change-t-il l'apparence de mon texte ?
Avec les réglages par défaut, non : chaque caractère supprimé est un caractère qui n'affiche rien. C'est l'exigence à laquelle nous tenons l'outil : passez-le sur un dispositif de stéganographie et le texte visible doit ressortir octet pour octet identique. Les options d'Avancé enfreignent délibérément cette règle, et c'est pourquoi chacune annonce ce qu'elle change.
En quoi est-ce différent d'un rechercher-remplacer ?
Un rechercher-remplacer supprime toutes les occurrences d'un point de code. C'est comme ça que des outils finissent par déchiqueter les emojis famille et l'orthographe persane. Celui-ci décide occurrence par occurrence, d'après les caractères de part et d'autre, et vous montre le raisonnement de chaque décision avec un numéro de ligne et de colonne.