Codificador de Entidades HTML — Escapar HTML
Codifique entidades HTML e escape caracteres especiais (< > & " ') online — grátis, sem cadastro, 100% no seu navegador. Saída nomeada, decimal ou hex; nada é enviado.
Seu texto é codificado localmente no seu navegador e nunca é enviado, registrado ou armazenado. Ele permanece neste dispositivo.
Opções · Opções de formato e codificação
O Que É a Codificação de Entidades HTML?
A codificação de entidades HTML — também chamada de escape de HTML — é o processo de substituir caracteres que têm significado especial em HTML por uma representação textual segura chamada entidade, para que o navegador os exiba como texto literal em vez de interpretá-los como marcação. Os cinco caracteres que mais importam são os que o HTML usa para estruturar um documento: os sinais de menor e maior < e > que abrem e fecham tags, o E comercial & que inicia uma entidade e as aspas " e ' que delimitam valores de atributo. Quando qualquer um deles aparece em conteúdo que deve ser exibido em vez de executado, precisa ser escapado, ou o navegador lerá a página errado — na melhor das hipóteses seu texto renderiza errado, na pior um atacante insere uma tag <script>.
Vale ser preciso sobre o que esta ferramenta faz. Ela codifica texto em entidades; não monta nem formata um documento. Se você quer ler uma string de código numa página como texto puro, ou está inserindo entrada fornecida pelo usuário no seu HTML e precisa neutralizá-la, esta é a ferramenta certa. Se, em vez disso, você quer indentar e arrumar marcação existente, esse é o trabalho do Formatador HTML; e para transformar entidades de volta em caracteres, use o Decodificador de Entidades HTML.
Há três formas de escrever qualquer entidade, e elas são intercambiáveis. Uma referência nomeada usa um rótulo amigável (< para <, © para ©); uma referência numérica decimal escreve o ponto de código Unicode do caractere na base 10 (< para <); e uma referência hexadecimal escreve o mesmo ponto de código na base 16 (< para <), correspondendo à notação U+XXXX do padrão Unicode. As entidades nomeadas se leem melhor, mas existem apenas para caracteres com um nome definido; as entidades numéricas podem representar qualquer ponto de código, e é por isso que são a alternativa segura. A tabela abaixo lista as entidades que você usará com mais frequência:
| Caractere | Nomeada | Decimal | Hex | |-----------|-------|---------|-----| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | (espaço) | |   |   | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | é | é | é | é |
Note que o apóstrofo é escrito ' (ou ') em vez de ': o nomeado ' só foi padronizado no HTML5 e no XML e é inseguro em analisadores HTML4 antigos, então a forma numérica — compreendida em todo lugar — é a escolha compatível. Esta ferramenta segue a mesma convenção da amplamente usada biblioteca he, e é por isso que a saída padrão para ' é '.
A distinção entre um conjunto de caracteres e uma entidade vale a pena guardar, porque explica a opção "Codificar tudo não-ASCII". Um charset (como o UTF-8) determina como os caracteres são armazenados como bytes; uma entidade é uma forma de escrever um caractere usando apenas os caracteres ASCII simples & # ; e letras ou dígitos. Numa página UTF-8 moderna, é, — e 😀 são caracteres brutos válidos e não precisam de entidade alguma — e é por isso que o modo padrão os deixa em paz. Você só os força em entidades quando o texto precisa passar por um sistema que não lida com UTF-8 bruto, caso em que todo ponto de código não-ASCII é reescrito como uma referência numérica ou nomeada segura para ASCII. E como tudo isso roda no seu navegador, a marcação que você escapa — mesmo um modelo privado ou um rascunho não publicado — nunca atravessa a rede. Para conversões relacionadas, as ferramentas Escape JSON e Codificar / Decodificar Base64 tratam do escape para strings JavaScript e do transporte seguro para binários, respectivamente.
// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
// < → < > → > & → & " → " ' → '
// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
return str
.replace(/&/g, '&') // & first, so later entities are not double-escaped
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '''); // numeric form — safe in HTML4, HTML5 and XML
}
const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → <a href="x">Tom & Jerry's</a>
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text
// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
// - React / Vue / Angular escape interpolated text by default
// - Use textContent instead of innerHTML when you only need text:
// el.textContent = userInput; // the browser escapes for you
// - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out Principais Recursos
Escapa Corretamente os Cinco Caracteres Reservados
< > & " ' são convertidos em suas entidades seguras exatamente como uma biblioteca robusta de prevenção de XSS faria — incluindo o ' seguro por compatibilidade para o apóstrofo em vez do ' inseguro no HTML4. Este é o conjunto preciso que neutraliza entrada não confiável em contextos de elemento e atributo HTML.
Saída Nomeada, Decimal e Hex
Obtenha os mesmos caracteres como entidades nomeadas legíveis (<, ©), referências numéricas decimais (<) ou referências hexadecimais (<). Escolha a forma que seu sistema consumidor espera; as três resolvem para caracteres idênticos quando analisadas.
Modo Opcional de Codificar Tudo Não-ASCII
Por padrão, apenas os caracteres reservados são escapados, mantendo acentos e emojis como UTF-8 bruto legível. Marque uma caixa para converter todo ponto de código acima de 0x7F numa entidade segura para ASCII, voltada a charsets legados ou sistemas que corrompem UTF-8.
Codificação Ao Vivo e Instantânea
A saída atualiza conforme você digita — sem botão de envio, sem latência de ida e volta. Cole um grande bloco de marcação e o resultado escapado aparece imediatamente, pronto para copiar.
Referência Rápida de Entidades Integrada
Uma tabela de referência das entidades mais comuns — os cinco reservados mais ©, ®, ™, €, —, e outros — fica na própria página em forma nomeada, decimal e hex, para você nunca precisar consultar uma entidade em outro lugar.
Troca para o Decodificador com Um Clique
Inverter direção salta direto para o Decodificador de Entidades HTML para reverter a operação. Codificar e decodificar são inversos exatos, então você pode fazer um ciclo de ida e volta do texto sem perda.
100% Privado, Só no Navegador
Toda a codificação acontece no seu dispositivo com JavaScript — sem requisições de rede, sem registro, sem armazenamento, verificável no DevTools → Network. Marcação privada, modelos de e-mail e rascunhos não publicados nunca saem da aba.
Disponível em 15 Idiomas
A interface completa — rótulos, instruções e orientações — está localizada em 15 idiomas, para que a ferramenta e seu conselho sobre escape sejam claros não importa onde sua equipe trabalhe.
Exemplos Práticos
Escapar um trecho de HTML (o modo padrão "caracteres especiais")
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
No modo padrão "caracteres especiais", o codificador reescreve apenas os cinco caracteres que têm significado na marcação HTML: < vira <, > vira >, & vira &, " vira " e ' vira '. O apóstrofo é emitido como o numérico ' em vez do nomeado ', porque ' não está definido no HTML4 e analisadores antigos podem engasgar com ele, enquanto a forma hex é universalmente compreendida. Após a codificação, o navegador renderiza a string como texto literal — a tag <a> é exibida, não clicada — que é exatamente como você mostra marcação dentro de uma página com segurança.
Caracteres não-ASCII são preservados no modo padrão
Visit our café — it's 😀
Visit our café — it's 😀
O modo "caracteres especiais" toca apenas nos cinco caracteres HTML reservados, então letras acentuadas (café), o travessão (—) e o emoji (😀) passam inalterados. Isso mantém a saída legível e leve em bytes, que é o que você quer para páginas UTF-8 que já declaram <meta charset="utf-8">. Apenas o apóstrofo em "it's" é escapado, para '. Se você precisar converter cada caractere não-ASCII numa entidade para um charset legado, marque "Codificar tudo não-ASCII" — veja o exemplo abaixo.
Entidades numéricas decimais
<>&"'
<>&"'
Mude o formato para Decimal e cada caractere especial é escrito como uma referência numérica de caractere em decimal: < é <, > é >, & é &, " é " e ' é '. As entidades decimais são a forma numérica mais amplamente compatível — todo analisador HTML e XML em conformidade as entende — o que as torna uma escolha segura quando você não tem certeza de que entidades nomeadas como © são suportadas pelo sistema consumidor.
Entidades numéricas hexadecimais
<>&"'
<>&"'
O formato Hex escreve cada caractere como uma referência numérica hexadecimal: < é <, > é >, & é &, " é " e ' é '. Hex e decimal são intercambiáveis — ambos referenciam o mesmo ponto de código Unicode — mas o hex mapeia um a um na notação U+XXXX que você vê no padrão Unicode, então é a forma que muitos desenvolvedores preferem ao documentar ou raciocinar sobre pontos de código específicos.
Codificar todos os caracteres não-ASCII
café
café (named) · café (decimal) · café (hex)
Marque "Codificar todos os caracteres não-ASCII" e todo ponto de código acima de 0x7F é convertido numa entidade, não só os cinco reservados. O é em café vira o nomeado é, o decimal é ou o hex é, conforme o formato escolhido — os três referenciam o mesmo caractere, U+00E9. Esse modo serve para páginas servidas num charset não-Unicode, ou para sistemas que corrompem UTF-8 bruto, onde forçar tudo em entidades ASCII de 7 bits garante que o texto sobreviva ao transporte intacto.
Como Usar o Codificador de Entidades HTML
- 1
Cole seu HTML ou texto
Coloque a marcação ou o texto puro que você quer escapar na caixa de entrada. A saída codificada atualiza ao vivo conforme você digita — não há botão de envio e nada é mandado a lugar nenhum.
- 2
Escolha o formato de entidade
Nomeado é o padrão legível (<, &, ©). Mude para Decimal (<) ou Hex (<) quando um sistema consumidor preferir referências numéricas ou você não puder garantir que entidades nomeadas sejam suportadas.
- 3
Opcionalmente, codifique tudo não-ASCII
Deixe isto desligado para páginas UTF-8 modernas, para que acentos e emojis permaneçam como caracteres brutos legíveis. Marque apenas quando o texto precisar sobreviver a um charset legado de byte único, o que converte todo caractere acima de 0x7F numa entidade segura para ASCII.
- 4
Copie o resultado codificado
Clique em Copiar para colocar a string escapada na sua área de transferência, pronta para colar num modelo, numa página de documentação ou num campo de banco de dados. Limpar reinicia ambos os painéis para o próximo trecho.
- 5
Precisa do inverso? Inverta a direção
Use Inverter direção para mudar para o Decodificador de Entidades HTML quando quiser transformar entidades de volta nos caracteres que elas representam.
Erros Comuns de Codificação HTML
Escapou o E comercial por último, causando escape duplo
Se você substituir < e > antes de &, as entidades que acabou de criar têm seu & reescapado, então < vira < e renderiza como texto literal. Sempre escape & primeiro.
replace < and > first, then & → < becomes &lt;
escape & first, then the rest → < stays <
Usou ' para o apóstrofo em contextos legados
' é indefinido no HTML4 e alguns clientes de e-mail o mostram literalmente. Use o numérico ' ou ', que todo analisador entende, ao mirar ambientes mais antigos ou mistos.
It's here → may render as It's here
It's here → renders as It's here
Codificou os dados duas vezes
Rodar texto já escapado pelo codificador de novo o codifica em dobro: & vira & e o usuário vê & em vez de &. Escape exatamente uma vez, no momento da saída.
& encoded again → &amp; shows as &
& left as-is → renders as &
Usou escape HTML para um contexto de URL ou JavaScript
Entidades HTML não tornam um valor seguro dentro de uma URL ou de um script inline. Um espaço numa URL precisa de %20, e uma string em JavaScript precisa de escape JS/JSON. Adeque a codificação ao lugar onde o valor aterrissa.
href="/search?q=a&b c" → the space still breaks the URL
href="/search?q=a%26b%20c" → URL-encoded, valid
Codificou não-ASCII desnecessariamente numa página UTF-8
Forçar café em café numa página UTF-8 moderna incha a fonte e prejudica a legibilidade sem benefício. Deixe não-ASCII bruto a menos que um charset legado genuinamente exija entidades.
café on a UTF-8 page → needless, harder to read
café on a UTF-8 page → valid and clean
Esqueceu de escapar aspas dentro de um valor de atributo
Inserir uma " não escapada num atributo deixa o valor sair e injetar novos atributos — um vetor de XSS. Sempre escape " (e idealmente ') no contexto de atributo, o que esta ferramenta faz por padrão.
title="He said "hi"" → attribute breaks out
title="He said "hi"" → contained
Quem Usa Esta Ferramenta
- Exibir Amostras de Código numa Página Web
- Escrevendo um tutorial ou documentação que precisa mostrar HTML literal? Escape o trecho para que <strong>bold</strong> apareça como texto em vez de renderizar. Cole a marcação, copie a saída escapada e coloque-a dentro de um bloco <pre> ou <code>.
- Higienizar Entrada de Usuário Contra XSS
- Antes de inserir qualquer string fornecida pelo usuário no seu HTML, escape os cinco caracteres reservados para que um payload como <script>…</script> vire texto inerte. Esta é a defesa fundamental contra cross-site scripting quando você constrói marcação à mão.
- Armazenar Marcação num Campo de Banco de Dados ou JSON
- Precisa salvar um fragmento de HTML como string pura sem que seja interpretado adiante? Codifique-o primeiro para que os sinais de menor/maior e os E comerciais sobrevivam ao armazenamento e à reexibição intactos, depois decodifique na volta.
- Criar Modelos de E-mail e Conteúdo de CMS
- Clientes de e-mail e sistemas de gerenciamento de conteúdo são implacáveis com caracteres especiais brutos. Escape o conjunto reservado — e opcionalmente tudo não-ASCII — para que seu modelo renderize de forma consistente entre clientes que talvez não compartilhem seu charset.
- Converter Texto para um Charset Legado
- Mirando um sistema que não lida com UTF-8 bruto? Ative "Codificar tudo não-ASCII" para reescrever toda letra acentuada, símbolo e emoji como uma entidade segura para ASCII, garantindo que o texto sobreviva ao transporte por pipelines limpas de 7 bits.
- Escapar Valores de Atributo XML e SVG
- XML e SVG inline compartilham os caracteres reservados do HTML. Codifique aspas e sinais de menor/maior para que uma string com marcação embutida se encaixe com segurança num valor de atributo sem quebrar a estrutura do documento.
- Consultar uma Entidade Rapidamente
- Esqueceu se o sinal de marca registrada é ™ ou ™? Digite o caractere, leia sua entidade nomeada, decimal e hex na saída, ou consulte a tabela de referência rápida integrada sem sair da página.
Como o Codificador Funciona
- Modo de Caracteres Especiais (Padrão)
- Por padrão, apenas os cinco caracteres reservados do HTML são escapados — & < > " ' — seguindo as regras de serialização HTML da WHATWG para uma saída segura. & é substituído primeiro para que as entidades produzidas para os outros caracteres não sejam duplamente escapadas. Todos os demais caracteres, incluindo não-ASCII, passam inalterados.
- O Apóstrofo Usa '
- Em vez do nomeado ' — que é indefinido no HTML4 e inseguro em alguns analisadores legados — a aspa simples é emitida como o numérico ' (decimal '), referenciando U+0027. Isso corresponde à convenção de bibliotecas bem testadas como a he e garante que a saída seja segura igualmente em HTML4, HTML5 e XML.
- Codificação Nomeada, Decimal e Hex
- O seletor de formato controla como cada caractere escapado é escrito: Nomeado usa rótulos definidos onde existem (<, ©), Decimal escreve o ponto de código Unicode na base 10 (<) e Hex o escreve na base 16 (<). As formas numéricas referenciam os mesmos pontos de código que as nomeadas e são intercambiáveis quando analisadas.
- Opção de Codificar Tudo Não-ASCII
- Quando ativada, todo caractere com ponto de código acima de 0x7F é convertido numa entidade no formato escolhido — café vira café (nomeado), café (decimal) ou café (hex). Caracteres astrais como emojis são codificados com seu ponto de código completo (😀 → 😀). Isso produz uma saída ASCII limpa de 7 bits para transporte legado.
- Charset Versus Entidades
- Um conjunto de caracteres define como o texto é armazenado como bytes; uma entidade é uma forma de soletrar um caractere usando apenas ASCII. Numa página UTF-8, caracteres não-ASCII não precisam de entidade, e é por isso que o padrão os deixa brutos. Codificar tudo só é necessário quando a saída precisa atravessar um charset não-Unicode ou um sistema hostil ao UTF-8.
- Local no Navegador, Rede Zero
- A codificação roda de forma síncrona em JavaScript na thread principal; não há chamada de API, nem ida e volta a um servidor via worker, nem persistência. A entrada nunca sai da página, o que você pode confirmar observando um painel Network vazio enquanto digita.
Boas Práticas de Escape de HTML
- Escape na Saída, no Contexto Certo
- Codifique os dados no momento em que você os insere no HTML, não quando os recebe, e adeque a codificação ao contexto. A codificação de entidades HTML é para conteúdo de elemento e atributo HTML; use codificação de URL dentro de URLs e escape de JavaScript/JSON dentro de blocos de script. Escapar no contexto errado deixa uma brecha.
- Sempre Escape Entrada Não Confiável
- Qualquer string que se origine de um usuário, de um upload ou de uma API externa deve ser escapada antes de aterrissar na sua marcação. Esta é a defesa central contra XSS: um payload como <script>alert(1)</script> vira texto inerte assim que os sinais de menor/maior viram entidades.
- Prefira o Escape Integrado Onde Existir
- React, Vue e a maioria dos motores de template no servidor escapam texto interpolado automaticamente; definir element.textContent também escapa por você. Use esta ferramenta para conversões pontuais e para entender a saída — mas no código da aplicação, apoie-se no auto-escape do framework em vez de fazê-lo à mão.
- Deixe Não-ASCII Bruto em Páginas UTF-8
- Se sua página declara <meta charset="utf-8">, não codifique acentos e emojis em entidades — o UTF-8 bruto é mais curto, mais legível e igualmente correto. Reserve "Codificar tudo não-ASCII" para os casos genuínos de charset legado que realmente exigem isso.
- Use o Apóstrofo Numérico em Contextos Mistos
- Quando a saída puder ser consumida por analisadores antigos, processadores XML ou clientes de e-mail, prefira o numérico ' ao nomeado ' para a aspa simples. A forma numérica é compreendida universalmente; a nomeada não, e um "'" literal perdido no texto renderizado é um bug comum e evitável.
Perguntas Frequentes
Meu texto é enviado ao seu servidor quando eu o codifico?
O que significa escapar HTML, e por que eu faria isso?
Qual é a diferença entre entidades nomeadas, decimais e hex?
Por que o apóstrofo é codificado como ' e não como '?
Preciso codificar caracteres não-ASCII como é, — ou 😀?
Escapar HTML me protege contra ataques XSS?
Como faço o inverso — transformar entidades de volta em caracteres?
Codificar vai mudar o texto visível ou quebrar meu layout?
Ferramentas relacionadas
Ver todas as ferramentas →Decodificador e Codificador Base64
Codificação e Formatação
Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.
Conversor de Base64 para Imagem
Codificação e Formatação
Decodifique uma string Base64 ou data URI de volta para imagem no navegador. Pré-visualize, leia dimensões e MIME, e baixe como PNG, JPG, GIF, SVG. Sem upload.
Conversor CSV para JSON
Codificação e Formatação
Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.
Conversor de .env para JSON
Codificação e Formatação
Cole um arquivo .env e obtenha JSON na hora. Suas senhas, chaves de API e tokens nunca saem do navegador — 100% privado, sem upload, analisador dotenv grátis.
Decodificador de Entidades HTML — Unescape HTML
Codificação e Formatação
Decodifique entidades HTML e faça unescape de HTML online — grátis, sem cadastro, 100% no seu navegador. Converte referências nomeadas, decimais & hex de volta em caracteres; nada é enviado.
Conversor de HTML para Markdown
Codificação e Formatação
Converta HTML em Markdown limpo no seu navegador — tabelas GFM, listas de tarefas e links. Escolha cabeçalhos ATX/Setext e links inline ou de referência. Ótimo para migrar conteúdo web ou alimentar LLMs. 100% privado, sem upload.