HTML Encode / Decode online
Cole o texto para codificar em entidades HTML, ou cole HTML com entidades para decodificar de volta ao texto original.
O que são entidades HTML?
Entidades HTML são sequências de caracteres que representam símbolos especiais no HTML. São necessárias porque alguns caracteres têm significado especial na linguagem HTML e não podem ser usados diretamente no conteúdo.
Os cinco caracteres mais importantes são:
| Caractere | Entidade HTML | Por que substituir? |
|---|---|---|
& | & | Inicia qualquer entidade HTML |
< | < | Abre uma tag HTML |
> | > | Fecha uma tag HTML |
" | " | Delimita atributos HTML |
' | ' | Delimita atributos HTML (aspas simples) |
Por que codificar HTML?
Segurança (XSS)
O principal motivo é prevenir ataques XSS (Cross-Site Scripting). Quando você exibe dados enviados por usuários diretamente em HTML sem codificar, um atacante pode injetar código JavaScript malicioso:
<!-- Entrada maliciosa do usuário -->
<script>document.cookie = 'roubado'</script>
<!-- Após htmlEncode, vira texto inofensivo -->
<script>document.cookie = 'roubado'</script>Exibição correta de conteúdo
Além da segurança, a codificação garante que o conteúdo seja exibido corretamente. Se você quiser mostrar o texto <div> em uma página HTML, precisa escrever <div> — caso contrário, o navegador interpreta como uma tag.
htmlspecialchars() no PHP
Esta ferramenta é equivalente ao htmlspecialchars() do PHP com a flag ENT_QUOTES:
echo htmlspecialchars($entrada, ENT_QUOTES, 'UTF-8');Esse é o padrão recomendado para exibir dados de usuários em templates PHP — frameworks como Laravel usam isso automaticamente nas diretivas {{ }} do Blade.
Encode vs Decode: quando usar cada um?
HTML Encode — use quando:
- Exibir dados de usuários em HTML
- Mostrar código-fonte em uma página web
- Gerar HTML dinamicamente a partir de dados externos
HTML Decode — use quando:
- Você recebeu texto com entidades HTML e precisa do texto original
- Processar conteúdo de feeds RSS/Atom (que frequentemente codificam entidades)
- Depurar templates ou conteúdo exportado de CMSs
Perguntas frequentes
Qual a diferença entre HTML Encode e URL Encode?
São codificações diferentes para contextos diferentes. HTML Encode converte caracteres especiais em entidades HTML (< → <) para uso seguro dentro de HTML. URL Encode (percent-encoding) converte caracteres em %XX para uso seguro em URLs (< → %3C). Nunca use um no lugar do outro.
& ou &?
Ambos representam o caractere &. A forma nomeada (&) é preferível por ser mais legível. A forma numérica (& ou &) é equivalente e funciona em qualquer contexto XML/HTML.
É necessário codificar ' (aspas simples)?
Depende do contexto. Dentro de atributos delimitados por aspas simples, sim. Fora de atributos, não é estritamente necessário, mas é uma boa prática codificar para evitar problemas em todos os contextos.