Ferramentas
Guias

Codificar / decodificar entidades HTML

Codificação

Codifica e decodifica entidades HTML — nomeadas, decimais e hexadecimais.

100% no cliente Sem backend
Entrada
Saída
Nesta página

O que é a codificação de entidades HTML?#

O HTML dá significado especial a um punhado de caracteres: < e > delimitam tags, & inicia uma entidade ou uma referência de carácter, e " e ' citam valores de atributos. Sempre que se quer que um desses caracteres apareça como texto literal numa página — mostrar aos usuárioes a fonte de um excerto de código, ecoar entrada de pesquisa de volta para um campo, exibir a string Tom & Jerry — tem de o substituir por um substituto chamado entidade. Essa substituição é a codificação de entidades HTML.

Há três formas de escrever o mesmo escape, e esta ferramenta oferece as três através do seletor Opções:

  • Nomeadas& torna-se &amp;, < torna-se &lt;, e por aí. Legíveis por humanos, e a única forma que as pessoas normalmente escrevem à mão. Neste modo, apenas os cinco caracteres estruturalmente perigosos são escapados; tudo o resto passa inalterado.
  • Decimais — todos os caracteres não-ASCII ou de controlo se tornam &#N;, onde N é o seu ponto de código Unicode em decimal (por exemplo © torna-se &#169;). Útil quando se quer que cada byte não padrão seja visível e seguro para ASCII.
  • Hexadecimais — a mesma ideia com pontos de código hexadecimais: © torna-se &#xa9;. Compacto e alinha-se naturalmente com a notação de ponto de código que se vê nas tabelas Unicode.

A decodificação reconhece as entidades nomeadas num subconjunto HTML5 curado, mais &#NN; (decimal) e &#xHH; (hex). Uma entidade nomeada não reconhecida é deixada exatamente como está em vez de ser adivinhada — mais seguro do que emitir silenciosamente o carácter errado.

Como usar#

  1. Escolha Codificar ou Decodificar no interruptor no canto superior esquerdo.
  2. Em Opções, escolha Nomeadas, Decimais ou Hexadecimais.
  3. Cole no painel Entrada à esquerda.
  4. Leia o resultado escapado (ou desescapado) no painel Saída à direita e clique em Copiar.
  5. Exemplo carrega uma string de demonstração; Limpar repõe os painéis.

Principais funcionalidades#

  • Três estilos de escape num só seletor. Alterne entre nomeadas, decimais e hexadecimais sem voltar a colar, o que torna a comparação de saídas trivial.
  • Correto para caracteres astrais. A iteração é por ponto de código Unicode, não por unidade de código UTF-16, pelo que um emoji como 🌍 é tratado como um carácter (&#x1f30d;), não um par de substitutos partido.
  • Descodificador curado e seguro. O mapa de entidades nomeadas cobre as referências HTML5 comuns (copyright, trademark, letras acentuadas, símbolos matemáticos, aspas e travessões). Nomes desconhecidos passam inalterados em vez de serem corrompidos.
  • Sem envolvimento do DOM. A codificação e decodificação são operações puras de strings — sem injeção de <div> escondida — pelo que a lógica é totalmente testável e não há risco de a própria ferramenta interpretar a sua entrada como markup.

Exemplo prático#

Pegue num fragmento que mistura markup com um símbolo literal:

<a href="x">Tom & Jerry</a> © 2026

No modo Nomeadas, apenas os cinco caracteres perigosos são escapados e o © é deixado em paz (não é estruturalmente perigoso):

&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&lt;/a&gt; © 2026

Mude para Decimais e o © torna-se também o seu ponto de código, enquanto os caracteres centrais mudam para forma numérica:

&#60;a href=&#34;x&#34;&#62;Tom &#38; Jerry&#60;/a&#62; &#169; 2026

No modo Hexadecimais os mesmos caracteres aparecem como pontos de código hexadecimais:

&#x3c;a href=&#x22;x&#x22;&#x3e;Tom &#x26; Jerry&#x3c;/a&#x3e; &#xa9; 2026

A decodificação inverte todos estes: cole qualquer uma das três saídas de volta com Decodificar selecionado e obtém o fragmento original, incluindo o ©.

FAQ#

Que modo devo usar para tornar uma string segura de colocar dentro de HTML?#

Nomeadas é quase sempre a predefinição certa para os cinco caracteres perigosos — é legível, bem compreendida por todos os navegadores, e mantém a saída amigável a diffs. Recorra a Decimais ou Hexadecimais quando especificamente precisa que todos os caracteres não-ASCII fiquem seguros para ASCII (por exemplo, preparar conteúdo para um transporte que rejeita bytes altos), não para escape comum.

Descodifiquei &copy; mas um nome estranho como &mytag; saiu inalterado. Porque?#

O decodificador só resolve entidades que efetivamente conhece — um subconjunto HTML5 curado dos nomes comuns. &mytag; não é uma entidade HTML real, pelo que a ferramenta o deixa inalterado em vez de adivinhar ou descartá-lo. Se mesmo assim precisa que todas as entidades definidas em DTD sejam resolvidas, está fora do âmbito de um conversor de strings e dentro da verdadeira análise de HTML.

Fazer escape de HTML chega para tornar a entrada do usuário segura numa string JavaScript ou numa URL?#

Não. Cada contexto tem as suas próprias regras. O escape de HTML protege contra injetar markup, mas uma string como '); alert(1); // é inofensiva em HTML e perigosa dentro de um <script>. A mesma entrada também precisa de codificação de URL antes de ir para uma ligação. Faça escape para o contexto de destino, não apenas uma vez.

Porque é que a saída hexadecimal usa letras minúsculas (&#xa9; e não &#xA9;)?#

Hexadecimal minúsculo é a forma convencional e mais limpa, e é analisada de forma idêntica por todos os navegadores. Se precisar de maiúsculas para um guia de estilo, o modo decimal (&#169;) contorna a questão inteiramente, ou passe a saída por uma transformação de maiúsculas/minúsculas sua.