Pular para o conteúdo
Favoritos

Codificador / Decodificador de Entidades HTML

Atualizado:

Converta texto simples em entidades HTML (&, <, ©) ou decodifique as entidades de volta em caracteres legíveis. Cole sua sequência de texto, escolha codificar ou decodificar e copie o resultado.

Codificar ou Decodificar Entidades HTML

Campos de entrada
Se ativado, o resultado é atualizado automaticamente quando você altera qualquer valor.

Fórmula de Entidades HTML

Fórmula
\[ E(c)=\begin{cases} n(c) & c \in S \\ r(c) & \mathrm{cp}(c)>127 \\ c & \text{caso contrário} \end{cases} \]

Onde:

  • \(E(c)\) — a saída codificada para um único caractere de entrada \(c\)
  • \(S\) — os cinco caracteres especiais do HTML: &, <, >, " e '
  • \(n(c)\) — a entidade nomeada do caractere, por exemplo, & torna-se &amp;
  • \(r(c)\) — a referência numérica decimal: &# seguido do ponto de código Unicode e de um ponto e vírgula, por exemplo, © torna-se ©
  • \(\mathrm{cp}(c)\) — o ponto de código Unicode de \(c\); este ramo aplica-se apenas quando a conversão de não ASCII está ativada

A codificação substitui cada caractere especial do HTML pela sua entidade nomeada e, opcionalmente, cada caractere acima do ponto de código 127 por uma referência numérica. A decodificação é a operação inversa: referências nomeadas, decimais e hexadecimais são convertidas de volta nos caracteres que representam.

Entidades HTML – Exemplo de Cálculo

Exemplo: codificar o texto padrão Tom & Jerry said "5 < 10" — it's © WPCalc com a opção "Caracteres Não ASCII" definida como "Converter para entidades numéricas".

\[ \text{travessão: ponto de código } 8212 \;\to\; \text{referência numérica}, \qquad \text{símbolo de copyright: ponto de código } 169 \;\to\; \text{referência numérica} \]

Resultado: Tom &amp; Jerry said &quot;5 &lt; 10&quot; — it's © WPCalc

O Resumo de Entidades lista seis conversões distintas: & → &amp;, " → &quot; (duas vezes), < → &lt;, ' → ', — → — e © → ©.

Como Usar a Calculadora de Entidades HTML

  1. Cole seu conteúdo na caixa Texto ou Sequência Codificada em HTML — texto simples para codificação ou texto contendo entidades como &amp;, &lt; ou © para decodificação.
  2. Defina a Operação como Codificar → entidades HTML ou Decodificar entidades → texto simples.
  3. Ao codificar, escolha como os Caracteres Não ASCII (apenas codificação) são tratados: Converter para entidades numéricas (© → ©) ou Deixar inalterados. Esta configuração é ignorada durante a decodificação.
  4. Leia o resultado em Saída Convertida e copie-o. O Resumo de Entidades lista cada conversão realizada com a contagem de cada uma; durante a decodificação, ele também sinaliza as entidades não reconhecidas que foram deixadas inalteradas.

O Que São Entidades HTML?

Uma entidade HTML é uma sequência de escape que representa um único caractere. Ela existe em três formas equivalentes: referências nomeadas como &amp; e &copy;, referências numéricas decimais como © e referências hexadecimais como ©. As três versões do símbolo de copyright são renderizadas como exatamente o mesmo caractere no navegador, então você pode combiná-las livremente.

As entidades existem porque vários caracteres têm significado estrutural no HTML. Um "e" comercial inicia uma referência, e < e > delimitam as tags. Um < cru em seu texto pode ser interpretado como o início de uma tag e engolir silenciosamente as palavras seguintes, enquanto um & solto torna a marcação inválida. Substituir esses caracteres por entidades garante que sejam exibidos como texto literal.

Escapar também é uma medida básica de segurança. Sempre que a entrada fornecida pelo usuário é ecoada de volta em uma página — um comentário, um termo de busca, uma mensagem de erro —, deixar < sem escape permite que um invasor injete marcação ou scripts. Codificar os cinco caracteres especiais neutraliza os caminhos de injeção mais comuns. As referências numéricas têm um benefício adicional: permitem incorporar qualquer caractere Unicode, de travessões a emojis, em um arquivo que, de resto, é ASCII puro.

Ao decodificar, lembre-se de que &nbsp; torna-se um espaço não separável (U+00A0), que parece um espaço comum, mas se comporta de forma diferente na quebra de linhas e em buscas. O decodificador reconhece as referências nomeadas mais comuns do HTML5, além de todas as referências numéricas válidas; qualquer coisa que não reconheça é deixada intacta e relatada abaixo do resumo.

Referência de Entidades HTML Comuns

Caractere Nomeada Decimal Uso típico
& &amp; & Cadeias de consulta, valores de atributos
< &lt; < Exemplos de código, comparações matemáticas
> &gt; > Exemplos de código, fechamento de tags
" &quot; " Aspas duplas em atributos
' ' ' Apóstrofos (forma segura para HTML4)
© &copy; © Avisos de direitos autorais
— &mdash; — Travessão na pontuação
… &hellip; … Reticências
™ &trade; ™ Símbolo de marca registrada
(espaço) &nbsp;   Espaço não separável
€ &euro; € Valores monetários
° &deg; ° Temperaturas, ângulos

Dicas e Limitações

  • Evite a codificação dupla: executar o codificador em texto que já contém entidades transforma &amp; em &amp;amp;. Decodifique primeiro e recodifique depois, se precisar de uma única passagem.
  • O apóstrofo é codificado como ' em vez de &apos;, exclusivo do HTML5, de modo que a saída permanece válida também em documentos HTML 4.
  • A codificação substitui apenas os cinco caracteres especiais do HTML e, opcionalmente, os não ASCII; letras latinas acentuadas só são alteradas quando a opção de referências numéricas está ativada.
  • Entidades HTML não são codificação de URL. Sequências de porcentagem como %26 pertencem a URLs — use o Codificador de URL ou o Decodificador de URL para isso, não esta ferramenta.
  • Para consultar o ponto de código de um caractere individual antes de convertê-lo, o Conversor ASCII mostra o valor numérico diretamente.
  • Se você precisa de uma representação segura para transporte de blocos inteiros de texto, em vez de um escape no nível de caracteres, o Codificador Base64 geralmente é a melhor escolha.

Perguntas frequentes

Como codificar entidades HTML manualmente, sem uma ferramenta?

Percorra seu texto procurando os cinco caracteres especiais e troque cada um: & → &, → >, " → ", ' → '. Para outros símbolos, localize o ponto de código Unicode do caractere e envolva-o como &#...; com um ponto e vírgula — por exemplo, © tem o ponto de código 169, então você escreve ©. A forma hexadecimal também funciona: © é renderizada de forma idêntica. Sempre codifique os "e" comerciais primeiro; se você substituir < primeiro e sobrar um &, o resultado ainda pode confundir o analisador.

Por que meu texto aparece literalmente como < em vez de um sinal de menor?

Seu texto foi codificado duas vezes: < foi transformado em < e, em seguida, o & dessa entidade foi codificado novamente, produzindo &lt;. Corrija decodificando duas vezes — a primeira passagem gera <, a segunda gera <. Para evitar o problema, decodifique as entidades existentes antes de recodificar e nunca execute o codificador em uma sequência que já esteja escapada. O Resumo de Entidades ajudará você a identificar entradas &amp; codificadas em dobro.

Qual é a diferença entre entidades HTML e codificação de URL (percent-encoding)?

Elas resolvem problemas diferentes. As entidades HTML (&, ©) escapam caracteres para que um navegador os exiba com segurança dentro de uma página web. As sequências de porcentagem (%26, %C2%A9) escapam caracteres para uso em URLs e cadeias de consulta, onde espaços, & e = têm significado especial. Se você colar %26 em uma página HTML, ele aparecerá literalmente como %26, não como um "e" comercial. Use esta ferramenta para marcação e um codificador de URL para links.

Quais caracteres devem sempre ser codificados para deixar o HTML seguro?

No mínimo, o "e" comercial e os sinais de menor e maior, porque & inicia uma referência de entidade e < inicia uma tag. Escapar aspas importa principalmente dentro de valores de atributos: " → " e ' → ' impedem que o valor de um atributo seja encerrado prematuramente. Ao exibir conteúdo enviado por usuários — comentários, termos de busca, valores de formulários —, a codificação desses caracteres bloqueia as técnicas mais comuns de injeção de HTML e scripts, pois qualquer tag que um invasor escreva é renderizada como texto visível e inofensivo.

Devo converter caracteres não ASCII como é, © ou — em entidades numéricas?

Depende da codificação de caracteres do seu arquivo. Se o documento estiver declarado como UTF-8 (charset=utf-8), você pode deixar letras acentuadas, travessões e símbolos como estão — os navegadores os tratam nativamente e o código-fonte permanece legível. Convertê-los em referências numéricas como © garante que o arquivo seja ASCII puro, o que ajuda quando a codificação é desconhecida, ao enviar HTML por e-mail ou ao colar em sistemas que corrompem Unicode. Emojis também funcionam bem como referências numéricas usando o ponto de código completo.

Por que   se comporta de forma estranha depois que eu decodifico meu texto?

Porque   decodifica para um espaço não separável (U+00A0), não para o espaço comum (U+0020). Visualmente eles parecem idênticos, mas a versão não separável impede a quebra de linha naquele ponto, pode comprometer comparações e buscas de cadeias de texto e pode atrapalhar códigos que removem espaços ou dividem o texto por espaços. Se o seu texto decodificado contiver diferenças invisíveis, tente substituir U+00A0 por espaços comuns — a maioria dos editores de texto pode procurar o caractere diretamente ou pela sua forma numérica.

Qual é a diferença entre ', &apos; e ' para um apóstrofo?

Todos os três representam o caractere de aspa simples. ' é a referência numérica decimal e ' é o equivalente hexadecimal — ambos são válidos em qualquer contexto. ' é uma referência nomeada introduzida apenas no HTML5; analisadores HTML 4 mais antigos não a reconhecem, e é por isso que muitos codificadores (incluindo este) geram a forma numérica para máxima compatibilidade. Na prática, qualquer navegador moderno renderiza os três de forma idêntica, então você pode decodificar e recodificar livremente sem perder o caractere.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *