HTML Encoder

HTML Encoder / Decoder

Faça escape de `& < > " '` para entidades HTML seguras, ou decodifique texto com escape de entidades de volta para texto puro. Quatro níveis de codificação — Mínimo, Nomeadas, Numéricas, Todos não-ASCII. Seguro com UTF-8 + emoji + CJK, no seu navegador.

Use Mínimo por padrão — escape apenas & < > " ', os cinco caracteres que quebram contextos de corpo / atributo HTML. É o que toda engine de templates moderna faz. Use Entidades nomeadas se quiser copyright / nbsp / setas etc. como códigos legíveis (&copy; em vez de &#169;). Use Numérico ao enviar HTML por pipelines que podem não entender entidades nomeadas. Use Todos não-ASCII ao mirar sistemas estritamente ASCII (servidores de e-mail legados, APIs problemáticas).

&apos; é válido em XML e HTML5, mas não em HTML 4.01 — navegadores antigos renderizam como o texto literal '. A referência numérica &#39; funciona em todo lugar. O decodificador aceita &apos; como entrada por compatibilidade.

Entrada
Saída

Feito para saída HTML segura

Faça escape de conteúdo de usuário em templates, decodifique dados com entidades — e alguns toques que tornam a ferramenta realmente prazerosa de usar.

Quatro modos de codificação

Mínimo faz escape apenas dos cinco caracteres inseguros para HTML (& < > " ') — o padrão correto para conteúdo gerado por usuários. Nomeadas usa entidades HTML5 legíveis como &copy; / &nbsp; / &hearts; quando existem. Numérico codifica todo codepoint não-ASCII como &#NN;. Todos não-ASCII codifica todo codepoint fora do ASCII imprimível, para pipelines legados ou apenas-ASCII.

Decodifique qualquer entidade

O decodificador trata entidades nomeadas (&copy;), numéricas decimais (&#169;) e numéricas hexadecimais (&#xA9;). Codepoints com par substituto (emoji, escritas antigas) fazem ida e volta corretamente via UTF-16.

Prévia ao vivo

A saída atualiza a cada tecla — sem botão Codificar / Decodificar para apertar. Troque a direção com um clique; o botão Trocar move a saída de volta para a entrada para que você encadeie transformações.

Seguro com UTF-8 + emoji + CJK

Todo codepoint Unicode faz ida e volta: 中文, العربية, русский, हिंदी, 🎉, Þorgeir. O codificador itera por codepoint (não usa charAt) para que pares substitutos permaneçam intactos.

Privacidade por design

Seu texto fica no seu dispositivo. Codificador, decodificador e tabela de entidades nomeadas rodam localmente em JavaScript. Abra DevTools → Network e confirme zero requisições saindo.

Pequeno + rápido

JavaScript puro, sem runtime de framework. O carregamento a frio fica abaixo de 25 KB com gzip. Um documento HTML de 100 KB é codificado em menos de 5 ms.

Como codificar ou decodificar entidades HTML

Quatro passos do texto bruto à saída segura com entidades.

  1. 1

    Cole seu texto

    Solte texto puro ou HTML no painel Entrada. Vale tudo — comentários de usuários, posts de blog, emoji, CJK, escritas RTL. O codificador itera por codepoint para que sequências multibyte permaneçam intactas.

  2. 2

    Escolha direção + modo

    Defina Direção como Codificar (texto → entidades) ou Decodificar (entidades → texto). Para Codificar, escolha o modo: Mínimo para templates, Nomeadas para entidades legíveis, Numérico para não-ASCII como &#NN;, Todos não-ASCII para saída apenas-ASCII.

  3. 3

    Veja a prévia ao vivo

    A saída atualiza a cada tecla. Compare modos em tempo real mudando o dropdown. Use Trocar para mover a saída de volta para a entrada — útil para verificar a ida e volta (codificar e depois decodificar = original).

  4. 4

    Copie ou baixe

    Use o ícone de copiar para enviar o resultado à área de transferência, ou o ícone de download para salvar como output.encode.html / output.decode.txt. A diferença de tamanho (caracteres / bytes de entrada → saída) mostra exatamente quanto a codificação inflou ou encolheu o texto.

Feito para o trabalho diário de web dev

Quatro cenários comuns onde uma ferramenta de navegador com privacidade em primeiro lugar bate colar código em um codificador online qualquer.

Embutindo conteúdo de usuário com segurança em um template

Comentários de usuários, respostas de formulário, consultas de busca — qualquer coisa vinda de fora que termina dentro de um <p>, <li> ou atributo. Passe pela codificação modo Mínimo antes de concatenar a string no seu HTML, e você fica seguro contra markup quebrado e os payloads XSS mais simples.

Lendo dados com escape de entidades de uma API

Algumas APIs retornam strings já com escape de entidades (feeds RSS, certas exportações de CMS, HTML raspado). Cole, clique em Decodificar, recupere o Unicode original. O decodificador trata entidades nomeadas, decimais e hex incluindo pares substitutos.

Linhas de assunto de e-mail + meta tags

<title>, <meta name="description">, <meta property="og:title"> — todos precisam de escape de entidades para caracteres especiais. Codifique sua manchete uma vez, cole nos três.

Conteúdo sensível que não pode ir para um serviço de terceiros

Conteúdo de CMS interno, dados de clientes, templates protegidos por NDA — qualquer coisa que você não pode colar em um codificador na nuvem. A ferramenta apenas-no-navegador mantém cada byte no seu laptop. Abra DevTools → Network e verifique que nada sai.

100% privado — roda no seu navegador

Seu texto nunca sai do seu dispositivo. Abra DevTools → Network e você verá zero requisições saindo durante a codificação ou decodificação.

  • Codificador, decodificador e tabela de busca de entidades nomeadas rodam todos como JavaScript na sua máquina — sem conversão no servidor, sem API de terceiros.
  • Codepoints com par substituto (emoji, escritas antigas) são tratados por iteração de codepoint, não por mapeamento em nível de byte — então um colar de 🎉 continua sendo 🎉 após uma ida e volta.
  • Sem login, sem telemetria sobre o conteúdo do texto. Usamos apenas um cookie para o estado de consentimento de cookies e um para a preferência de idioma.

Guias relacionados

Leituras selecionadas sobre HTML escaping, tabelas de entidades e templating seguro.

Perguntas frequentes

Qual modo devo escolher?

Use Mínimo por padrão — escape apenas & < > " ', os cinco caracteres que quebram contextos de corpo / atributo HTML. É o que toda engine de templates moderna faz. Use Entidades nomeadas se quiser copyright / nbsp / setas etc. como códigos legíveis (&copy; em vez de &#169;). Use Numérico ao enviar HTML por pipelines que podem não entender entidades nomeadas. Use Todos não-ASCII ao mirar sistemas estritamente ASCII (servidores de e-mail legados, APIs problemáticas).

Por que isto faz escape de `'` como `&#39;` em vez de `&apos;`?

&apos; é válido em XML e HTML5, mas não em HTML 4.01 — navegadores antigos renderizam como o texto literal '. A referência numérica &#39; funciona em todo lugar. O decodificador aceita &apos; como entrada por compatibilidade.

Emoji e caracteres CJK sobrevivem?

Sim. O codificador itera codepoints (não unidades UTF-16), portanto emoji como 🎉 (U+1F389) viram &#127881; ao codificar e fazem ida e volta correta na decodificação. O mesmo vale para CJK (中文 → &#20013;&#25991; em modo numérico).

É seguro embutir entrada do usuário diretamente em HTML após a codificação?

Para corpo e atributos HTML — sim, com o modo Mínimo. Para contextos de URL (href="...") você também precisa de URL encoding. Para JavaScript ou CSS inline, nem HTML nem URL encoding são suficientes — use uma engine de templates apropriada que entenda esses contextos. Nunca cole entrada de usuário sem escape em um bloco <script>.

Algo é enviado para o seu servidor?

Não. O codificador, o decodificador e a tabela de entidades nomeadas rodam todos em JavaScript no seu dispositivo. Abra DevTools → Network e você verá zero requisições saindo durante a codificação ou decodificação. Cole segredos, dados de clientes, templates internos — nada sai do seu laptop.