Codificador de Entidades HTML

Escape texto em entidades HTML para que os caracteres de marcação sobrevivam, no seu navegador.

Roda inteiramente no seu navegador. Nada é enviado, registrado ou armazenado.

Cinco caracteres não podem aparecer literalmente em HTML sem mudar o que a marcação significa: o e comercial, os dois sinais de menor e maior e os dois tipos de aspas. Escapá-los é o que transforma um pedaço de texto em um pedaço de texto que um navegador vai exibir em vez de obedecer.

Como funciona

O modo mínimo escapa apenas esses cinco caracteres. É a escolha certa quase sempre: se a sua página é UTF-8 e os seus arquivos são UTF-8, uma letra acentuada não precisa de escape nenhum, e escapá-la só torna o código-fonte mais difícil de ler sem ganho.

As entidades nomeadas substituem todo caractere para o qual o HTML 4.01 tem um nome — 252 deles, é como é, © como ©. Use isso quando a saída tiver de passar por algo que estraga tudo acima do ASCII, como um sistema de e-mail antigo ou uma coluna de banco de dados com a colação errada.

As referências numéricas dão a mesma garantia por ponto de código em vez de por nome, então funcionam para todo caractere, e não só para os 252 que têm nome. Elas são escritas em hexadecimal com o ponto e vírgula final, que todo parser aceita.

Exemplos

Caso Entrada Resultado
Uma tag que precisa ser mostrada, e não executada <script>alert(1)</script> &lt;script&gt;alert(1)&lt;/script&gt;
Um e comercial dentro de um valor Tom & Jerry Tom &amp; Jerry
Uma letra acentuada, nomeada café caf&eacute;

Perguntas frequentes

Escapar aqui basta para tornar segura a entrada de um usuário?

Para texto entre tags, e para um valor de atributo entre aspas, sim: as aspas também são escapadas. Fora disso, não: um valor que vai para uma URL, um bloco de estilo ou um bloco de script precisa do escape próprio, e as entidades HTML são a ferramenta errada para os três. Escape no ponto de saída, no contexto daquela saída, no seu código — e não colando em uma página web.

Por que o apóstrofo é escapado como &#039; e não como &apos;?

&apos; não existe no HTML 4.01. Ele foi acrescentado no XHTML e depois no HTML5, e navegadores antigos o mostram literalmente. A forma numérica sempre funcionou em todo lugar.

Quais entidades nomeadas são suportadas?

As 252 do HTML 4.01. O HTML5 define cerca de duas mil a mais, em boa parte matemáticas, e elas não estão incluídas aqui. O que não tem nome nesse conjunto fica como está no modo nomeado, ou é escapado por ponto de código no modo numérico.

Preciso escapar os acentos em um site moderno?

Não. Se a página declara UTF-8 e o arquivo está salvo em UTF-8, é é simplesmente é. As entidades nomeadas servem para fazer o texto atravessar sistemas que não lidam bem com UTF-8.

Bom saber

  • Tudo acontece no seu navegador. O que você cola não é enviado, não é registrado e não é armazenado.

Fontes

Todas as ferramentas de Código