Tutte le guide

Perché un testo mostra «&» e come correggerlo

Pubblicata il · Aggiornata il 3 min di lettura

Avrete probabilmente visto un testo mostrare «Tom & Jerry» invece di «Tom & Jerry» su un sito, in un'e-mail o in una scheda prodotto. Non è un guasto: un'entità HTML è stata codificata una volta di troppo. Questa guida spiega da dove viene il problema e come correggerlo.

Che cos'è un'entità HTML

Nel codice di una pagina web, alcuni caratteri hanno un ruolo speciale: la «&» avvia un'entità, i segni «<» e «>» racchiudono i tag. Per visualizzare questi caratteri così come sono, vengono sostituiti da una sequenza di segni chiamata entità. Cinque sono comuni.

CarattereEntità
&&amp;
<&lt;
>&gt;
"&quot;
' (apostrofo dritto)&#039;

Da dove viene la doppia codifica

Un testo a volte passa per due sistemi che codificano entrambi: un editor, poi un modello di pagina. Ogni passaggio trasforma la «&» dell'entità precedente. Con Codificare e decodificare entità HTML, codificare «Tom & Jerry» dà «Tom &amp; Jerry», e codificare questo risultato dà «Tom &amp;amp; Jerry».

PassaggioTesto ottenuto
Testo originaleTom & Jerry
Codificato una voltaTom &amp; Jerry
Codificato due volteTom &amp;amp; Jerry

Il browser decodifica un livello alla visualizzazione. Un testo codificato due volte appare quindi con «&amp;» invece di «&».

Decodificare un livello alla volta

Lo strumento toglie un solo livello di entità per passaggio. Se il risultato contiene ancora entità, la modalità «Entrambi» lo segnala e rilanciate la decodifica sul risultato.

TestoPrima decodificaSeconda decodifica
Tom &amp;amp; JerryTom &amp; JerryTom & Jerry
&amp;lt;b&amp;gt;gras&amp;lt;/b&amp;gt;&lt;b&gt;gras&lt;/b&gt;<b>gras</b>

Decodificare un solo livello evita di disfare una codifica voluta: un esempio di codice che deve mostrare «&amp;» a schermo si scrive «&amp;amp;» nella pagina.

Accenti e simboli

La decodifica comprende tutte le entità con nome che terminano con un punto e virgola, non solo le cinque usuali. «caf&eacute; &agrave; 5&nbsp;&euro; &copy; 2026» dà «café à 5 € © 2026», e lo spazio non separabile diventa un vero spazio non separabile. Anche le entità numeriche vengono decodificate: «&#233;t&#xE9;» dà «été», e «&#x1F600;» come «&#128512;» danno la stessa emoji.

Che cosa lo strumento lascia intatto

  • Un'entità sconosciuta come «&inconnue;» viene lasciata com'è.
  • Un'entità senza punto e virgola finale, come «&amp» o «&lt» in una frase, non viene toccata.
  • Un indirizzo con parametri, come «https://exemple.fr/?a=1&param=2&copy=4», resta esatto: «&param» e «&copy» non vengono scambiati per entità.

Codificare un codice per mostrarlo

Per mostrare un frammento di codice in una pagina, codificatelo una volta. Il testo «<a href="x">l’été & plus</a>» dà «&lt;a href=&quot;x&quot;&gt;l&#039;été &amp; plus&lt;/a&gt;». Le lettere accentate non vengono codificate, solo i cinque caratteri riservati.

Evitare il problema

Codificate una sola volta, all'ultimo momento, quando il testo viene scritto nella pagina. Per sostituire in blocco i resti di una cattiva codifica, va bene Trovare e sostituire. Gli indirizzi web seguono un'altra codifica, spiegata in Base64, impronta e indirizzo codificato, non confonderli.

Dove compare il problema

In una scheda prodotto, un titolo di pagina, un'e-mail automatica o un campo importato da un altro sito: una «&» diventa «&amp;» quando il testo viene codificato due volte.

Verificare il risultato

  1. Rilanciate la decodifica finché lo strumento segnala entità rimaste.
  2. Confrontate con il testo originale a schermo.
  3. Verificate gli spazi non separabili e le emoji.

Entità HTML

Domande frequenti

Perché il mio testo mostra «&amp;»?
Un'entità HTML è stata codificata una volta di troppo. Il browser decodifica un livello alla visualizzazione, il secondo resta visibile.
Come si corregge?
Decodificate un livello alla volta con lo strumento, finché non segnala più entità.
Lo strumento decodifica gli accenti?
Sì, tutte le entità con nome che terminano con un punto e virgola, e le entità numeriche.
Come si evita il problema?
Codificate una sola volta, all'ultimo momento, quando il testo viene scritto nella pagina.