Pack Camo

Codificador e Decodificador de Entidades HTML

Escape texto para HTML e transforme &entidades; de volta em caracteres. Tudo roda localmente — nada é enviado para servidor nenhum.

Entrada
Text · HTML
Saída
Escaped HTML · decoded text

Texto

66 caracteres

HTML

102 caracteres

<p class="note">Fish & chips — £4.50, café crème "très bon" 😀</p>

Escape texto para HTML ou transforme entidades de volta em texto

Este codificador de entidades HTML escapa os caracteres que de outra forma seriam lidos como marcação, e o decodificador transforma entidades como &, é e € de volta nos caracteres que representam. Escolha referências nomeadas, decimais ou hexadecimais, escape só o necessário ou todo caractere não ASCII, e consulte as entidades comuns na tabela de referência. Tudo roda no seu navegador; nada do que você cola é enviado.

Como codificar ou decodificar entidades HTML

  1. Escolha Codificar para escapar texto para HTML, ou Decodificar para transformar entidades de volta em caracteres.
  2. Ao codificar, escolha o que escapar: só os caracteres especiais (& < > " ') ou também todo caractere não ASCII.
  3. Escolha a forma: nomeada (&eacute;), decimal (&#233;) ou hexadecimal (&#xE9;).
  4. Copie o resultado ou troque-o de volta para a entrada para conferir a ida e volta. Ative a Tabela de referência para copiar uma entidade avulsa.

Por que o HTML precisa de escape

No HTML, < inicia uma tag e & inicia uma referência de caractere, e dentro de um atributo a aspa encerra o valor. Para mostrar esses caracteres como texto, eles precisam ser escritos como entidades: &lt;, &amp;, &quot; e &#39;. Esquecer disso é como um "<b" perdido em um comentário deixa o resto da página em negrito — e, quando o texto vem de um usuário, é como acontece o cross-site scripting (XSS).

O escape é a última linha de defesa, não a única. Motores de template como React, Vue, Jinja e Blade escapam a saída para você; esta ferramenta é para os lugares aonde eles não chegam — HTML estático, templates de e-mail, documentação, campos de CMS e depuração do que um sistema realmente armazenou.

Referências nomeadas, decimais e hexadecimais

O apóstrofo é escrito como &#39; em vez de &apos;: &apos; é válido em HTML5 e XML, mas nunca fez parte do HTML 4, e alguns parsers antigos não o conhecem.

Nomeada (&eacute;)
Legível, e a forma que a maioria reconhece. O HTML5 define cerca de 2.200 nomes, mas nem todo caractere tem um; caracteres sem nome são escritos em decimal.
Decimal (&#233;)
O code point Unicode em base 10. Funciona para qualquer caractere, em qualquer parser HTML e XML.
Hexadecimal (&#xE9;)
O mesmo code point em base 16, que corresponde a como as tabelas Unicode o escrevem (U+00E9).

Preciso escapar letras acentuadas e emojis?

Não em uma página servida como UTF-8, que é quase toda página hoje. Só os cinco caracteres especiais precisam de escape; "café", "日本語" e emojis podem ser escritos como estão. É o que a opção só caracteres especiais faz, e ela mantém o HTML legível.

Escapar todo caractere não ASCII ainda é útil quando a saída passa por algo que não é seguro para UTF-8: um sistema legado em ISO-8859-1 ou Windows-1252, alguns fluxos de e-mail ou um arquivo-fonte cuja codificação você não controla. O resultado é ASCII puro e sobrevive a qualquer um deles.

Como funciona a decodificação

O decodificador lê referências nomeadas, decimais (&#169;) e hexadecimais (&#xA9;), seguindo as regras dos navegadores: referências numéricas no intervalo 128–159 são lidas como Windows-1252, como o padrão HTML especifica, então &#150; vira um meia-risca; code points inválidos viram o caractere de substituição; e os poucos nomes legados que os navegadores aceitam sem ponto e vírgula, como &copy, também são decodificados. Nomes desconhecidos, normalmente erros de digitação como &nbps;, ficam no lugar e são listados para você corrigir.

Se o texto veio de uma URL e não de HTML, use o decodificador de URL: %3C é percent-encoding, não uma entidade HTML.

Perguntas frequentes

O que são entidades HTML?
Entidades HTML são códigos que representam caracteres, escritos entre & e ;. Elas permitem mostrar caracteres que o HTML trataria como marcação, como < e &, ou caracteres difíceis de digitar, como © ou um espaço não separável.
Quais caracteres precisam de escape em HTML?
Cinco: & como &amp;, < como &lt;, > como &gt;, a aspa dupla como &quot; e a aspa simples como &#39;. As aspas só importam dentro de valores de atributo, mas escapá-las em todo lugar não faz mal.
Como decodificar entidades HTML?
Escolha Decodificar e cole o texto. Entidades nomeadas, decimais e hexadecimais são convertidas em caracteres enquanto você digita, e nomes de entidade desconhecidos são listados.
Qual a diferença entre &nbsp; e um espaço normal?
&nbsp; é um espaço não separável: parece um espaço, mas impede a quebra de linha naquele ponto, e os navegadores não juntam vários deles em um só. É útil entre um número e sua unidade, como 10&nbsp;kg.
Devo usar &apos; ou &#39; para o apóstrofo?
&#39; funciona em todo lugar. &apos; é válido em HTML5 e XML, mas não em HTML 4, então &#39; é a escolha mais segura para e-mail e sistemas antigos.
Escapar HTML previne XSS?
Escapar o texto antes de inseri-lo no HTML é a defesa central contra cross-site scripting, mas precisa combinar com o contexto: texto HTML, atributos, URLs e JavaScript exigem cada um a própria codificação. Prefira um sistema de templates que escape automaticamente.
Meu texto é enviado a um servidor?
Não. A codificação e a decodificação acontecem inteiramente no seu navegador.