Codificação
HTML Entities Encode/Decode
Codificação e decodificação de entidades HTML — exibição segura de caracteres especiais na página.
HTML entities are a way to write characters that would otherwise break markup (<, >, &) or have no keyboard key, as safe text sequences like < or &. This tool encodes and decodes such entities right in your browser.
How to use it
- Encode: paste text and characters like <, >, &, and quotes get replaced with their matching entities.
- Decode: paste HTML containing entities (&, ©, etc.) to see the plain text.
- Both named entities (&) and numeric ones (& or &) are supported.
Common uses
- Safely displaying user text (a comment, a message) on a page without risking broken markup or an injected script.
- Embedding HTML code samples in an article or documentation so the browser shows them as text instead of rendering them.
- Decoding content copied from another site where the characters arrived already entity-encoded.
Things to keep in mind
HTML entity escaping only protects against XSS via a page's text content — it does not protect a JavaScript context (innerHTML, eval) or href/src attributes containing unvalidated URLs.
Encode exactly at the point where text gets inserted into HTML, not ahead of time when saving to a database — otherwise the data gets mangled when reused outside an HTML context.
Artigo sobre esta ferramenta: HTML Entities: como exibir caracteres especiais com segurança
Perguntas frequentes
Qual a diferença entre entidades HTML nomeadas e numéricas?
Entidades nomeadas como & são mais fáceis de ler, enquanto entidades numéricas como & ou & (decimal ou hex) funcionam para qualquer caractere, incluindo os que não têm entidade nomeada. Ambas são renderizadas de forma idêntica no navegador.
Quando realmente preciso codificar entidades HTML?
Codifique caracteres como < > & " ' sempre que inserir texto dinâmico ou fornecido pelo usuário em marcação HTML, para que o navegador os trate como texto e não como parte de uma tag ou atributo.
Qual a diferença entre o modo "Básico" e "Todos os caracteres"?
O modo Básico escapa apenas os caracteres estruturalmente significativos em HTML (como < > & " '), enquanto "Todos os caracteres" também converte outros caracteres não-ASCII em entidades numéricas, útil para parsers mais antigos ou rígidos.
Preciso escapar o texto num atributo de forma diferente do corpo da página?
Os caracteres principais (<, >, &) são escapados da mesma forma, mas dentro de um atributo entre aspas é crítico escapar especificamente o tipo de aspas que delimita o atributo — caso contrário o valor "quebra" antes do esperado.
O escaping de HTML protege contra todos os tipos de XSS?
Não. Ele cobre o vetor mais comum — inserir texto em conteúdo HTML — mas não protege contra XSS via contexto JavaScript (por exemplo, innerHTML seguido de execução de código) ou URLs não validadas em href/src.