Sobre esta ferramenta
As entidades HTML são sequências de escape que representam caracteres que de outra forma seriam interpretados como marcação ou que não podem ser digitados de forma confiável — < para o sinal de menor que, & para o e comercial, para um espaço não separável, e formas numéricas como   (decimal) ou   (hexadecimal) para qualquer ponto de código Unicode. A codificação converte um caractere bruto em sua entidade; a decodificação resolve uma entidade de volta ao caractere. Esta ferramenta codifica em saída nomeada, decimal ou hexadecimal e decodifica as três formas, incluindo o conjunto nomeado comum e caracteres astrais como emoji.
Use-o para incorporar com segurança strings geradas por usuários, exemplos de código ou citações em HTML sem quebrar a página nem abrir uma brecha de XSS; para reparar texto que chegou duplamente codificado como &amp; de um modelo mal configurado; para inspecionar uma referência numérica como — e ver que é um travessão; ou para traduzir caracteres acentuados e símbolos em entidades estritamente ASCII para pipelines antigos de e-mail e feeds. Por padrão, a codificação escapa apenas & < > " ', ou todos os caracteres não-ASCII quando você ativa o escopo completo.
Codificar entidades HTML serve para exibição segura, não para segurança — codifique em entidades as entradas não confiáveis no momento em que são renderizadas em HTML, e conte com um sanitizador de verdade mais uma Content Security Policy para barrar XSS.
Perguntas frequentes
Qual é a diferença entre entidades HTML nomeadas, decimais e hexadecimais?
São três notações para o mesmo caractere. Entidades nomeadas como © são legíveis por humanos, mas só existem para um conjunto fixo de caracteres; as referências numéricas decimal (©) e hexadecimal (©) funcionam para qualquer ponto de código Unicode, de modo que qualquer caractere pode sempre ser expresso numericamente.
Quais caracteres precisam ser codificados como entidades HTML?
No mínimo os cinco que são significativos para o analisador HTML: & (&), < (<), > (>), " (") e ' (’). Codificar o e comercial primeiro é essencial, caso contrário as entidades existentes acabam duplamente codificadas. Os demais caracteres são opcionais e só são necessários para transporte estritamente ASCII.
Por que meu texto mostra & em vez de &?
Isso é codificação dupla: o e comercial foi escapado duas vezes, geralmente porque um HTML já codificado foi passado novamente por um codificador. Decodificar o texto em uma passagem transforma &amp; de volta em &, e uma segunda passagem produz o & literal — esta ferramenta decodifica um único nível por execução, para que você possa desfazê-lo passo a passo.