L'output dell'IA contiene spesso Unicode invisibili, soprattutto spazi non separabili e spazi non separabili stretti. Ma si tratta di normali sottoprodotti della formattazione del testo, non di una filigrana nascosta. La vera filigrana del testo esiste e funziona orientando statisticamente la scelta delle parole, senza lasciare caratteri speciali da trovare. Puoi controllare qualsiasi testo da solo in pochi secondi.
L'affermazione, e perché si è diffusa
Ogni pochi mesi un post diventa virale mostrando che il testo copiato da ChatGPT contiene caratteri nascosti, con la conclusione che OpenAI starebbe inserendo di nascosto una filigrana nell'output per renderlo rintracciabile.
L'osservazione è vera. La conclusione non è supportata.
Ciò che le persone trovano è reale: incolla una risposta della chat in un ispettore di caratteri e vedrai spesso code point che non visualizzano nulla. Il salto avviene nell'interpretazione. Una filigrana deve sopravvivere alle modifiche, essere difficile da rimuovere e codificare qualcosa. Caratteri che svaniscono appena qualcuno esegue un trova e sostituisci, e che non contengono alcun contenuto recuperabile, non soddisfano nessuna di queste condizioni.
Cosa c'è davvero nel testo
I caratteri invisibili che compaiono nell'output dell'IA sono in gran parte normali caratteri tipografici:
| Carattere | Code point | Perché compare |
|---|---|---|
| Spazio non separabile | U+00A0 | Tiene un numero e la sua unità sulla stessa riga |
| Spazio non separabile stretto | U+202F | Spaziatura sottile prima della punteggiatura e nei numeri |
| Spazio a larghezza zero | U+200B | Suggerimenti per l'interruzione di riga, spesso ereditati da testo web |
| Trattino morbido | U+00AD | Indica dove una parola può essere spezzata quando va a capo |
| Byte-order mark | U+FEFF | Artefatto di codifica proveniente da un file a monte |
Ognuno ha uno scopo tipografico legittimo e ognuno esiste da decenni prima dei modelli linguistici. Arrivano attraverso le stesse vie di sempre: il modello li ha appresi dal testo di addestramento che li conteneva, l'interfaccia della chat visualizza l'output formattato come HTML, e copiare da una pagina web renderizzata porta con sé qualsiasi cosa il markup contenesse.
Quest'ultima via conta più di quanto ci si aspetti. Gran parte di ciò che viene attribuito al modello è in realtà introdotto dalla copia dal browser, non dalla generazione. Copiare la stessa risposta tramite l'API produce spesso un testo più pulito rispetto a copiarla dalla finestra della chat.
La filigrana dei testi IA esiste davvero?
Sì, ma non funziona come ipotizzano i post virali.
SynthID-Text di Google DeepMind è l'approccio meglio documentato, pubblicato su Nature nel 2024. Funziona orientando sottilmente quali parole il modello campiona a ogni passo, così il testo finito porta una firma statistica rilevabile da un verificatore corrispondente. Non ci sono caratteri speciali coinvolti. Nulla viene inserito. La filigrana vive nella scelta di parole normali, ed è per questo che sopravvive alla copia e alle piccole modifiche, e perché non puoi trovarla ispezionando i code point.
OpenAI ha discusso pubblicamente di ricerca sulle filigrane del testo e non ha rilasciato un'implementazione confermata rivolta agli utenti per l'output di ChatGPT.
L'implicazione pratica va contro il panico: se un modello che usi ha una filigrana, rimuovere i caratteri invisibili non la eliminerà. E se trovi caratteri invisibili, non è una prova di filigrana: è una prova di formattazione.
Perché i caratteri invisibili contano comunque
Filigrana o no, di solito è meglio eliminarli, perché rompono le cose in silenzio:
- La ricerca e il trova e sostituisci falliscono. Uno spazio a larghezza zero tra due lettere fa sì che la ricerca della parola non trovi nulla, senza alcun motivo visibile.
- La convalida dei moduli rifiuta l'input. Un indirizzo email o una chiave di licenza con uno spazio non separabile finale fallisce un confronto che a schermo sembra corretto.
- Il codice non compila o non si analizza. Uno spazio non separabile al posto di uno spazio normale produce un errore di sintassi che punta a una riga che sembra perfetta.
- Le importazioni CSV si corrompono. Un byte-order mark si attacca all'intestazione della prima colonna, così il primo campo non viene mappato senza alcun avviso.
- Compaiono record duplicati. Due voci che sembrano identiche sono stringhe diverse, quindi la deduplicazione le ignora.
Questi errori sono particolarmente fastidiosi perché il testo sembra corretto. Ogni istinto di debug punta da un'altra parte.
Come controllare e pulire il tuo testo
Incolla il testo nello Scanner di caratteri invisibili. Segnala ogni spazio a larghezza zero, trattino morbido, byte-order mark e segno direzionale che trova, con un conteggio per ogni tipo, e li rimuove su richiesta. Nulla lascia il tuo browser: la scansione avviene in locale.
Se vuoi un quadro più ampio, il Pulitore di testo IA copre i caratteri invisibili insieme a trattini lunghi, virgolette curve ed emoji in un solo passaggio.
Un'abitudine che vale la pena prendere: esegui il controllo ogni volta che il testo attraversa un confine tra sistemi. Dalla finestra della chat a un editor di codice, da una pagina web a un foglio di calcolo, da un PDF a un modulo. È lì che i caratteri invisibili fanno danni, ed è il momento in cui costano meno rimuoverli.
Per l'elenco completo di cosa sono questi caratteri e cosa fa ognuno, vedi il riferimento sui caratteri Unicode invisibili.
Domande frequenti
ChatGPT inserisce una filigrana nel testo con caratteri invisibili?
Non ci sono prove in questo senso. I caratteri invisibili trovati nell'output di ChatGPT sono normali caratteri tipografici come spazi non separabili e spazi non separabili stretti, che esistono da decenni e non contengono alcun contenuto. Inoltre scompaiono con qualsiasi pulizia di base, il che li renderebbe inutili come filigrana.
Il testo generato dall'IA può avere una filigrana?
Sì. SynthID-Text di Google DeepMind, pubblicato su Nature nel 2024, orienta le scelte di parole del modello in modo che l'output porti una firma statistica. Non inserisce alcun carattere speciale, quindi ispezionare i code point non lo rivelerà mai, e rimuovere i caratteri invisibili non lo elimina.
Perché il testo copiato da ChatGPT contiene caratteri nascosti?
Soprattutto perché stai copiando HTML renderizzato da una pagina web. L'interfaccia della chat mostra output formattato, e la copia porta con sé i caratteri di spaziatura usati da quella formattazione. Recuperare la stessa risposta tramite l'API produce spesso un testo notevolmente più pulito.
Come trovo i caratteri invisibili nel mio testo?
Incollalo in uno scanner che elenca i code point, come il nostro Scanner di caratteri invisibili. Identifica ogni tipo di carattere invisibile presente, lo conta e lo rimuove su richiesta, funzionando interamente nel tuo browser.
I caratteri invisibili sono pericolosi?
Non pericolosi, ma davvero problematici. Rompono la ricerca, fanno fallire la convalida dei moduli, producono errori di sintassi nel codice, corrompono le intestazioni CSV e creano record duplicati che sembrano identici. Poiché il testo appare normale, questi bug sono insolitamente difficili da diagnosticare.