Escapar/Desescapar HTML

Converte caracteres especiais como &, <, >, " e ' em entidades HTML (escapar), ou converte entidades de volta aos caracteres originais (desescapar). Útil para prevenir XSS e inserir texto em HTML.

Principais entidades HTML nomeadas

Caractere Entidade nomeada Referência numérica Descrição
& &amp; &#38; E comercial (símbolo de "e")
< &lt; &#60; Sinal de menor que (igual ao caractere de abertura de uma tag HTML)
> &gt; &#62; Sinal de maior que (igual ao caractere de fechamento de uma tag HTML)
" &quot; &#34; Aspas duplas (delimitador de valores de atributo)
' &apos; &#39; Aspa simples (delimitador de valores de atributo)
  &nbsp; &#160; Espaço inseparável (um espaço que impede a quebra de linha)
© &copy; &#169; Símbolo de copyright
® &reg; &#174; Símbolo de marca registrada
&trade; &#8482; Símbolo de marca comercial
&euro; &#8364; Símbolo do euro
¥ &yen; &#165; Símbolo do iene
¢ &cent; &#162; Símbolo de centavo

Dicas

  • O escape de HTML é a base da prevenção de XSS (cross-site scripting). Sempre escape a entrada do usuário antes de inseri-la no HTML.
  • O caractere & deve sempre ser escapado primeiro. Se você converter outros caracteres antes, o & dentro do &amp; recém-gerado acabará sendo escapado duas vezes.
  • Ao inserir uma string dentro de um valor de atributo, é mais seguro escapar tanto " (aspas duplas) quanto ' (aspa simples), não apenas uma delas.
  • Esta ferramenta consegue desescapar referências numéricas decimais (&#38;), referências numéricas hexadecimais (&#x26;) e as principais entidades nomeadas (como &amp;).
  • Muitos motores de template (Blade, JSX, Vue etc.) escapam o HTML automaticamente ao interpolar variáveis, mas se você usar uma sintaxe de "saída HTML bruta" como {!! !!} ou v-html, precisará escapar o valor manualmente.

Perguntas frequentes

Esses três caracteres — &lt;, &gt; e &amp; — são especiais porque os analisadores de HTML os interpretam como parte da própria sintaxe. Se não forem escapados, o navegador pode confundi-los com o início ou o fim de uma tag, o que pode causar layouts quebrados ou XSS (injeção de scripts maliciosos).

A codificação de URL (percent-encoding) converte caracteres especiais para representá-los com segurança dentro de uma URL, enquanto o escape de HTML evita que caracteres sejam confundidos com tags dentro de um documento. Como servem a propósitos diferentes, se o valor de um formulário for usado tanto como parâmetro de URL quanto exibido em HTML, pode ser necessário aplicar ambas as conversões.

Não. Toda a conversão é feita inteiramente no seu navegador usando JavaScript, e o texto digitado nunca é enviado aos servidores do toolbase.cc.

Não. Esta ferramenta escapa apenas cinco caracteres: &, <, >, " e '. Caracteres não ASCII, como emojis e textos em outros idiomas, são exibidos com segurança tal como estão em ambientes UTF-8 modernos, então não precisam de conversão.
ツールくん

Curiosidade — O mecanismo de "referências de caracteres" herdado do SGML

A origem das entidades HTML (referências de caracteres) remonta ao SGML (Standard Generalized Markup Language), o predecessor do HTML. O SGML, padronizado em 1986, já possuía um mecanismo de "referência de caractere" para permitir o uso do caractere delimitador de tags < dentro do próprio texto. O HTML herdou esse mecanismo quase sem alterações, e entidades nomeadas básicas como &lt;, &gt; e &amp; já estavam definidas nas primeiras especificações do HTML, ainda na década de 1990.

As entidades nomeadas foram originalmente valorizadas como uma forma de exibir símbolos especiais de impressão (como o símbolo de copyright &copy;, o de marca registrada &reg; e diversas letras gregas) em ambientes ASCII, antes da popularização do Unicode. A especificação HTML5 chegou a definir mais de 2.000 entidades nomeadas, cobrindo até símbolos menores como marcas de verificação e notas musicais.

Hoje, a difusão da codificação UTF-8 reduziu bastante a necessidade de referências de caracteres para evitar texto corrompido. No entanto, três caracteres — <, > e & — ainda precisam ser escapados por um motivo completamente diferente. Eles têm um significado sintático especial para os analisadores de HTML (o início de uma tag, o fim de uma tag e o início de uma entidade), então deixar de escapá-los pode causar diretamente layouts quebrados ou vulnerabilidades de XSS.