Codificar e decodificar HTML
Esta ferramenta codifica texto em referências de caracteres HTML e os decodifica de volta, inteiramente no seu navegador. Entidades nomeadas como & e < cobrem as escapas comuns; formas numéricas como A e A alcançam qualquer caractere Unicode. O modo de decodificação estrito reporta entidades desconhecidas em vez de passá-las adiante.
Codificar e decodificar HTML: explicação
HTML atribui a dois caracteres funções estruturais: & inicia uma referência de caractere, < inicia uma tag. Quando esses caracteres aparecem como texto, precisam de escapar, e o mecanismo é a referência de caractere: uma grafia curta e não ambígua como & que todo analisador decodifica de volta para o caractere original.
A lista padrão de referências nomeadas é finita e fechada — mais de 2.200 grafias — e cinco carregam quase todo o trabalho: & < > " e '. Para qualquer coisa não coberta pela lista, uma referência numérica escreve o ponto de código diretamente: A e A são ambos a letra A, e o mesmo truque alcança todos os caracteres que o Unicode tem.
O painel abaixo faz ambas as direções: um alternador codifica texto em entidades, o outro decodifica-as de volta. Chaves selecionam saída nomeada ou numérica, e decodificação estrita ou tolerante. Como tudo neste site, é executado inteiramente nesta aba.
Construir links que carregam dados do usuário é onde as duas gramáticas de escapamento se encontram, e o codificador e decodificador de URL lida com a metade de codificação percentual.
Escapamento de entidades é um membro de uma família de codificações de caractere e byte; o site hub de ferramentas de codificação reúne o resto, do Base64 ao binário.
As cinco entidades nomeadas que fazem quase todo o trabalho
Quais caracteres devem ser escapados depende do contexto. Em texto, dois são obrigatórios: um & literal deve ser escrito &, porque um e comercial seguido de letras e ponto-e-vírgula é como as referências começam, e um < literal deve ser escrito <, porque caso contrário abre uma tag. Os outros três são contextuais; escapar todos os cinco incondicionalmente não tem custo.
| Entidade | Escreve | Obrigatório quando |
|---|---|---|
| & | & | Sempre em texto — a fuga que a especificação exige |
| < | < | Em texto, antes de abrir uma tag |
| > | > | Raramente obrigatório em texto; escapado por hábito |
| " | " | Dentro de valores de atributo entre aspas duplas |
| ' | ' | Dentro de valores de atributo entre aspas simples |
Nomeado versus numérico: duas grafias de um caractere
Uma referência numérica escreve o próprio ponto de código: A é decimal para A, A hexadecimal para a mesma letra — ponto-e-vírgula obrigatório em HTML5, x e dígitos hexadecimais insensíveis a maiúsculas e minúsculas. Como o número nomeia o ponto de código diretamente, a forma numérica cobre todos os caracteres que o Unicode define, incluindo emoji.
A troca é legibilidade de fonte: é diz a um humano o que será renderizado, é não. O modo nomeado aqui segue a política usual: caracteres comuns recebem nomes ( , —, é como é), o longo rabisco recebe números. A jusante a diferença desaparece — ambas as grafias decodificam para o mesmo caractere.
Modo de decodificação e o que o modo estrito reporta
O alternador de direção inverte o pipeline: cole marcação escapada, obtenha caracteres simples. As três grafias decodificam — nomeada, decimal e hexadecimal — e a pesquisa nomeada tolera maiúsculas e minúsculas, porque a marcação do mundo real não é consistente.
Entidades desconhecidas recebem tratamento honesto. O conversor não reconhece &npsp; — o erro clássico de — e por padrão deixa intacto, porque texto pode legitimamente conter e comerciais. O modo estrito existe para marcação que se diz totalmente escapada: ali uma entidade desconhecida é um bug, e a decodificação estrita reporta cada uma acima da saída em vez de deixar um erro sobreviver.
Escapar é o limite de segurança, não decoração
O motivo dessa conversação importa além da tipografia é injeção. Texto fornecido pelo usuário que chega a uma página sem escapar não é exibido como texto: um <script> literal dentro dele executa, e uma aspa não escapada em um valor de atributo quebra o atributo. Escapar transforma esses bytes em caracteres inertes — <script> é renderizado como texto legível e não faz mais nada.
É um trabalho diferente do escapamento de URL: codificação percentual tem seu próprio conjunto reservado e gramática, e os dois não são intercambiáveis — por isso recebem ferramentas separadas.
Perguntas frequentes
O codificador envia meu texto para um servidor?
Não. Ambas as direções são transformações de string executadas por JavaScript que carregou com a página; nada é transmitido. A Content-Security-Policy do site define connect-src 'self', então o navegador próprio recusaria uma solicitação de saída. Verifique de qualquer forma: o painel Rede do DevTools fica silencioso, e a ferramenta continua funcionando offline.
Quais caracteres precisam realmente ser escapados em HTML?
No conteúdo de texto, dois são obrigatórios: & como & e < como <. Um > nu em texto é tolerado mas escapado por hábito, e as aspas importam apenas dentro de valores de atributo delimitados pela mesma aspa. Esta ferramenta escapa todos os cinco incondicionalmente, então sua saída é segura em qualquer lugar.
Qual a diferença entre entidades nomeadas e numéricas?
Uma entidade nomeada é um rótulo da lista fechada do padrão — &, ©, é. Uma referência numérica escreve o ponto de código diretamente, decimal como A ou hexadecimal como A. Ambos decodificam para o caractere idêntico; numérico cobre todo ponto de código Unicode, nomeado é mais legível. A diferença é apenas para leitores de fonte.
O que o modo de decodificação estrito detecta?
Nomes desconhecidos e números impossíveis. Decodificação estrita reporta entidades como &npsp; — o erro clássico de — e referências numéricas cujo valor não é um código de caractere válido. O modo tolerante deixa entidades desconhecidas intactas.
Entidades afetam SEO ou leitores de tela?
Não. Entidades são decodificadas durante a análise HTML, antes do índice de busca ou um leitor de tela as verem. O DOM contém o caractere literal de qualquer forma, então é e é ranqueiam identicamente e são anunciados identicamente. Escolha uma grafia para os humanos lendo a fonte, não para máquinas consumindo a página.
Por que minha aspa simples se torna '?
Porque HTML5 define ' — foi apenas XML por anos, por isso referências mais antigas o chamam de arriscado — e uma aspa simples dentro de um atributo entre aspas simples é exatamente onde escapá-la é obrigatório. Para consumidores pré-HTML5, a forma numérica ' é a que todo analisador sempre aceitou.
Quais ferramentas relacionadas devo usar a seguir?
- Codificar e decodificar URLDistingue + de %20 ao codificar e decodificarAbrir
- Codificar e decodificar Base64Codifica e decodifica Base64 padrão e URL-safeAbrir
- Ferramentas de codificaçãoBase64, codificação de URL, hashes e inspeção de tokens.Abrir
- Ferramentas de textoCompare, converta e transforme texto simples e código.Abrir
- Converter camelCase e snake_caseRenomeia identificadores com siglas tratadas direitoAbrir
- Como funciona o Base64Guia em linguagem simplesAbrir