Codificar / decodificar entidades HTML
Escape texto para HTML ou converta entidades & de volta em caracteres
Sobre esta ferramenta
Escape texto para inclusão segura em HTML — & vira &amp;, < vira &lt; — ou decodifique texto cheio de entidades de volta para caracteres legíveis, cobrindo entidades nomeadas (&rarr;), referências numéricas decimais (&#169;) e hexadecimais (&#xA9;).
A codificação oferece dois níveis: os cinco caracteres essenciais que quebram a estrutura do HTML (& < > " '), que é tudo que você precisa para correção, ou tudo que não for ASCII, útil quando alguma etapa da toolchain corrompe UTF-8 entre você e a página. Um modo somente numérico dispensa entidades nomeadas para máxima compatibilidade com parsers XML estritos, que só garantem as cinco predefinidas.
O decodificador é a metade do dia a dia: cole um trecho raspado ou uma resposta de API cheia de &#x27; e receba texto limpo. Nomes de entidade desconhecidos passam intactos em vez de serem adivinhados.
Perguntas frequentes
- Quais caracteres precisam ser escapados em HTML?
- Em conteúdo de texto: & e <. Em valores de atributo: também o caractere de aspas que delimita o atributo (" ou '). Escapar > é convencional, mas não estritamente obrigatório. Todo o resto pode aparecer literalmente em um documento UTF-8.
- Codificar entidades é uma defesa contra XSS?
- Escapar os cinco caracteres estruturais é o núcleo da codificação de saída para contexto HTML, sim — mas apenas para contextos de texto e atributo HTML. URLs, strings JavaScript e CSS precisam de suas próprias codificações específicas de contexto; escapar entidades sozinho não torna injeção arbitrária segura nesses lugares.
- Entidades nomeadas ou numéricas — quais devo emitir?
- Referências numéricas (&#xE9;) funcionam em qualquer parser HTML e XML. Entidades nomeadas são mais legíveis, mas o XML só predefine cinco, então &eacute; quebra um pipeline XML/XHTML estrito. Na dúvida, numéricas.
- Por que vejo &amp;#39; (codificação dupla) nos meus dados?
- Duas camadas codificaram uma vez cada: o & da primeira codificação foi escapado por uma segunda passada. Decodifique duas vezes aqui para recuperar o texto, depois encontre e corrija a camada que não deveria estar codificando.