Aller au contenu
Français
L'établiDes outils qui ne téléversent rien
Un atelier de l'association ODERSARien ne part, rien n'est gardé, rien ne nous arrive.

L'atelier · Nettoyer un texte collé

Comment ça marche : Nettoyer un texte collé

Un texte collé transporte ce que personne ne voit : des caractères de largeur nulle, des contrôles d'écriture qui inversent l'affichage sans changer les octets, des espaces qui n'en sont pas. L'outil les NOMME un par un, avec leur nom officiel Unicode, puis les retire.

Ouvrir l'outil

Le désordre visible d'un copier-coller se répare en deux minutes : les doubles espaces, les lignes vides en trop, les puces qui traînent. Le désordre INVISIBLE, non, et c'est celui qui coûte cher. Un texte collé depuis une page web ou un document transporte souvent des caractères qui ne s'affichent pas du tout, et qui font échouer une recherche, une comparaison, un import de données, ou un formulaire, sans que personne comprenne pourquoi.

Cet outil les liste AVANT de les retirer, chacun avec son nom officiel Unicode et son point de code. Deux familles méritent d'être connues. Les caractères de largeur nulle : on peut en cacher un motif reconnaissable dans un texte, et ce motif survit au copier-coller. Les contrôles d'écriture bidirectionnelle : ils réordonnent l'AFFICHAGE sans changer les octets, ce qui permet qu'un texte se lise autrement qu'il ne s'exécute. Cette dernière technique a été publiée en 2021 par deux chercheurs de Cambridge sous le nom de Trojan Source.

Le reste est du confort honnête : la normalisation Unicode en forme composée, recommandée pour tout contenu par l'annexe Unicode n° 15 et par le W3C ; les espaces insécables ramenées à des espaces ordinaires ; les guillemets typographiques convertis si vous le demandez ; et le recollage des mots coupés en fin de ligne, le piège du texte copié depuis un PDF.

Comment ça marche

  1. Collez votre texte. Il ne quitte pas votre appareil.
  2. Lisez le tableau : il nomme chaque caractère invisible trouvé, combien de fois, et ce qu'il fait.
  3. Réglez ce que vous voulez retirer, puis copiez le résultat. Les cases se règlent en direct : le résultat se recalcule à chaque changement.

Formats acceptés

Du texte. Si votre presse-papiers porte aussi une mise en forme riche, votre navigateur ne la transmet pas à une zone de texte : ce qui arrive ici est déjà du texte brut, et c'est très bien ainsi.

Un texte, tapé ou collé

Jusqu'à 200 000 signes. Le résultat se copie en un clic.

Voir la matrice de compatibilité

Ses limites

La normalisation de compatibilité est DESTRUCTRICE, et elle n'est pas cochée par défaut

Elle transforme la ligature « fi » en deux lettres, la fraction « ½ » en « 1/2 », les exposants en chiffres ordinaires, et les caractères de largeur pleine en caractères ordinaires. C'est parfois exactement ce qu'on veut avant une comparaison ; c'est parfois une perte d'information. L'annexe Unicode qui la définit prévient explicitement qu'elle ne doit pas être appliquée à l'aveugle, et nous suivons cet avertissement.

Sur les sélecteurs de variante, nous distinguons ce qui est documenté de ce qui est observé

Unicode documente leur usage prévu comme un mécanisme d'exception pour des cas d'affichage difficiles, et l'outil les retire à ce titre. Qu'on puisse y dissimuler des données arbitraires est une technique réelle, mais nous ne l'avons trouvée décrite que dans un billet de blog de 2025, dont l'auteur écrit lui-même qu'il s'agit d'un détournement. Nous la présentons donc comme une observation, pas comme un fait établi par un éditeur : c'est la règle de ce site.

Les identifiants de vulnérabilité de l'attaque Trojan Source sont CONTESTÉS

Deux identifiants ont été attribués en 2021 à la technique de réordonnancement bidirectionnel. Les deux sont marqués comme contestés dans la base publique : le consortium Unicode refuse le cadrage « faille de sa spécification », et son argument n'est pas absurde, puisque ces caractères font exactement ce pour quoi ils ont été prévus. La publication de recherche, elle, est réelle et vérifiable. Nous vous donnons les deux moitiés du fait.

Le recollage des mots coupés en fin de ligne n'est pas coché par défaut

Il est très utile sur un texte copié depuis un PDF, où les mots sont coupés par la mise en page. Mais il ne peut pas distinguer un mot coupé d'un mot composé qui tombe en fin de ligne. L'outil ne recolle donc qu'entre deux lettres minuscules, ce qui épargne « Paris-Brest » et les nombres, et il vous laisse décider de l'activer. Relisez toujours après.

Questions sur cet outil

Mon texte est-il envoyé quelque part ?

Non. Vérifiez en trente secondes : ouvrez l'inspecteur avec la touche F12, onglet « Réseau », videz la liste, puis collez votre texte. Aucune ligne n'apparaît. Coupez votre connexion et refaites-le : l'outil fonctionne pareil, parce que tout le catalogue de caractères qu'il emploie est écrit dans la page.

À quoi servent vraiment ces caractères invisibles ?

À des choses légitimes, pour la plupart. Le joignateur de largeur nulle assemble un emoji de famille, les marques d'écriture servent à mélanger de l'arabe et du français dans une même phrase, le tiret conditionnel indique où un mot peut être coupé. Le problème n'est pas leur existence, c'est qu'ils voyagent avec un texte copié sans que personne les voie : ils cassent alors une recherche, une comparaison ou un import, et on cherche pendant une heure. Et sur un texte reçu de quelqu'un, ils peuvent aussi servir de filigrane invisible.

Qu'est-ce que Trojan Source ?

Une technique publiée en 2021 par deux chercheurs de l'université de Cambridge. Les contrôles d'écriture bidirectionnelle réordonnent l'AFFICHAGE d'un texte sans changer un seul de ses octets : un morceau de code peut donc se lire comme une chose et s'exécuter comme une autre, y compris dans l'outil de revue d'un projet. Deux identifiants de vulnérabilité ont été attribués, tous deux CONTESTÉS dans la base publique, parce que le consortium Unicode refuse d'y voir une faille de sa spécification. Les deux moitiés du fait sont vraies, et nous vous donnons les deux.

Faut-il cocher la normalisation de compatibilité ?

Seulement si vous savez pourquoi. Elle est très utile avant de comparer deux textes ou d'importer des données, parce qu'elle réduit des variantes visuelles au même caractère. Mais elle est destructrice : la ligature « fi » devient deux lettres, la fraction « un demi » devient trois signes, un exposant devient un chiffre ordinaire. L'annexe Unicode qui la définit prévient de ne pas l'appliquer à l'aveugle. Pour un texte destiné à être lu, laissez la forme composée simple, qui est cochée par défaut.

Pourquoi mes guillemets courbes ne sont-ils pas convertis par défaut ?

Parce que ce sont les bons guillemets pour un texte destiné à être lu. Un traitement de texte les substitue automatiquement, et il a raison : en français comme en anglais, la typographie soignée les emploie. Ils ne posent problème que dans un contexte technique, un fichier de données ou du code, où un guillemet courbe n'est pas un guillemet. La case existe donc, décochée : c'est à vous de savoir dans quel monde va vivre votre texte.