Todos os guias

Por que um texto mostra «&» e como corrigir

Publicado em · Atualizado em 3 min de leitura

Você provavelmente já viu um texto mostrar «Tom & Jerry» em vez de «Tom & Jerry» em um site, em um e-mail ou em uma página de produto. Não é uma falha: uma entidade HTML foi codificada uma vez a mais. Este guia explica de onde vem o problema e como corrigi-lo.

O que é uma entidade HTML

No código de uma página da web, alguns caracteres têm um papel especial: o «&» inicia uma entidade, os sinais «<» e «>» cercam as tags. Para exibir esses caracteres como são, eles são substituídos por uma sequência de sinais chamada entidade. Cinco são comuns.

CaractereEntidade
&&amp;
<&lt;
>&gt;
"&quot;
' (apóstrofo reto)&#039;

De onde vem a codificação dupla

Um texto às vezes passa por dois sistemas que codificam cada um: um editor e depois um modelo de página. Cada passagem transforma o «&» da entidade anterior. Com Entidades HTML, codificar «Tom & Jerry» dá «Tom &amp; Jerry», e codificar esse resultado dá «Tom &amp;amp; Jerry».

EtapaTexto obtido
Texto originalTom & Jerry
Codificado uma vezTom &amp; Jerry
Codificado duas vezesTom &amp;amp; Jerry

O navegador decodifica um nível ao exibir. Um texto codificado duas vezes aparece, portanto, com «&amp;» em vez de «&».

Decodificar um nível por vez

A ferramenta retira um único nível de entidades por passagem. Se o resultado ainda contém entidades, o modo «Ambos» avisa e você roda a decodificação de novo sobre o resultado.

TextoPrimeira decodificaçãoSegunda decodificação
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>

Decodificar um único nível evita desfazer uma codificação desejada: um exemplo de código que deve mostrar «&amp;» na tela se escreve «&amp;amp;» na página.

Acentos e símbolos

A decodificação entende todas as entidades nomeadas terminadas em ponto e vírgula, não só as cinco usuais. «caf&eacute; &agrave; 5&nbsp;&euro; &copy; 2026» dá «café à 5 € © 2026», e o espaço não separável vira um espaço não separável de verdade. As entidades numéricas também são decodificadas: «&#233;t&#xE9;» dá «été», e «&#x1F600;» como «&#128512;» dão o mesmo emoji.

O que a ferramenta deixa intacto

  • Uma entidade desconhecida como «&inconnue;» é deixada como está.
  • Uma entidade sem ponto e vírgula final, como «&amp» ou «&lt» em uma frase, não é tocada.
  • Um endereço com parâmetros, como «https://exemple.fr/?a=1&param=2&copy=4», continua exato: «&param» e «&copy» não são tomados por entidades ali.

Codificar um código para exibi-lo

Para mostrar um trecho de código em uma página, codifique-o uma vez. O texto «<a href="x">l’été & plus</a>» dá «&lt;a href=&quot;x&quot;&gt;l&#039;été &amp; plus&lt;/a&gt;». As letras acentuadas não são codificadas, apenas os cinco caracteres reservados.

Evitar o problema

Codifique uma única vez, no último momento, quando o texto é escrito na página. Para substituir em massa os restos de uma codificação ruim, Buscar e substituir serve bem. Os endereços da web seguem outra codificação, explicada em Base64, hash e endereço codificado: não os confunda.

Onde o problema aparece

Em uma página de produto, um título de página, um e-mail automático ou um campo importado de outro site: um «&» vira «&amp;» quando o texto é codificado duas vezes.

Conferir o resultado

  1. Rode a decodificação de novo enquanto a ferramenta avisar que restam entidades.
  2. Compare com o texto original na tela.
  3. Confira os espaços não separáveis e os emojis.

Entidades HTML

Perguntas frequentes

Por que meu texto mostra «&amp;»?
Uma entidade HTML foi codificada uma vez a mais. O navegador decodifica um nível ao exibir, o segundo continua visível.
Como corrigir?
Decodifique um nível por vez com a ferramenta, até que ela não avise mais sobre entidades.
A ferramenta decodifica os acentos?
Sim, todas as entidades nomeadas terminadas em ponto e vírgula, e as entidades numéricas.
Como evitar o problema?
Codifique uma única vez, no último momento, quando o texto é escrito na página.