Codificar e Decodificar HTML

Escape caracteres de marcação ou restaure entidades como texto, sem executar HTML.

Resultado

Aguardando conteúdo.

O que faz e quando usar

Em HTML, alguns caracteres têm papel de marcação. O sinal < pode iniciar uma tag e & pode iniciar uma referência de caractere. Quando queremos exibir esses sinais como texto, precisamos de uma representação que não os confunda com a estrutura naquele contexto; entidades são uma dessas representações.

Como funciona

Escapar substitui caracteres por representações como &lt;, &gt; e &amp;. A substituição de & precisa ser considerada para não confundir entidades já existentes com o conteúdo original. Restaurar faz o caminho de interpretação das entidades, recuperando caracteres. Nesta página, a saída permanece texto, sem executar as tags recuperadas.

Aplicação prática e conferência

Codificação depende de contexto. Um escape para texto HTML não é automaticamente apropriado para JavaScript, CSS ou URL. Decodificar também pode recuperar sinais perigosos se outra aplicação depois inserir a saída como HTML ativo. Por isso escape e sanitização não são operações intercambiáveis.

Exemplo resolvido

Entrada: <b>Ana & Bia</b>. Ao escapar, < e > passam a &lt; e &gt;, e & passa a &amp;: &lt;b&gt;Ana &amp; Bia&lt;/b&gt;. O objetivo é representar a marcação como texto. Restaurar essa sequência devolve os sinais originais; isso não autoriza inseri-los sem proteção em qualquer página.

Leitura do resultado e erros comuns

Ao escapar <, a saída é &lt;. Escapar essa saída novamente também transforma o & e produz &amp;lt;. Uma única restauração então recupera &lt;, sem chegar ainda ao caractere <. Isso explica a aparência de entidades dentro de entidades quando a codificação é repetida. Encode e decode mudam representação, sem aprovar conteúdo para qualquer uso. O resultado é apresentado como texto nesta página. Se outro programa inserir a versão decodificada como HTML ativo, precisará de tratamento adequado àquele contexto; escape não é um sanitizador universal.

Limitações e cuidados

Não sanitiza qualquer contexto de HTML, JavaScript, CSS ou URL e não verifica a segurança de um fragmento. Decodificar conteúdo escapado pode torná-lo perigoso se outro sistema depois o inserir como HTML. O processamento desta ferramenta é local.

Ferramentas relacionadas

Voltar para Desenvolvimento