Codificar / decodificar entidades HTML
CodificaçãoCodifica e decodifica entidades HTML — nomeadas, decimais e hexadecimais.
Nesta página
O que é a codificação de entidades HTML?#
O HTML dá significado especial a um punhado de caracteres: < e > delimitam tags, & inicia uma entidade ou uma referência de carácter, e " e ' citam valores de atributos. Sempre que se quer que um desses caracteres apareça como texto literal numa página — mostrar aos usuárioes a fonte de um excerto de código, ecoar entrada de pesquisa de volta para um campo, exibir a string Tom & Jerry — tem de o substituir por um substituto chamado entidade. Essa substituição é a codificação de entidades HTML.
Há três formas de escrever o mesmo escape, e esta ferramenta oferece as três através do seletor Opções:
- Nomeadas —
&torna-se&,<torna-se<, e por aí. Legíveis por humanos, e a única forma que as pessoas normalmente escrevem à mão. Neste modo, apenas os cinco caracteres estruturalmente perigosos são escapados; tudo o resto passa inalterado. - Decimais — todos os caracteres não-ASCII ou de controlo se tornam
&#N;, ondeNé o seu ponto de código Unicode em decimal (por exemplo©torna-se©). Útil quando se quer que cada byte não padrão seja visível e seguro para ASCII. - Hexadecimais — a mesma ideia com pontos de código hexadecimais:
©torna-se©. Compacto e alinha-se naturalmente com a notação de ponto de código que se vê nas tabelas Unicode.
A decodificação reconhece as entidades nomeadas num subconjunto HTML5 curado, mais &#NN; (decimal) e &#xHH; (hex). Uma entidade nomeada não reconhecida é deixada exatamente como está em vez de ser adivinhada — mais seguro do que emitir silenciosamente o carácter errado.
Como usar#
- Escolha Codificar ou Decodificar no interruptor no canto superior esquerdo.
- Em Opções, escolha Nomeadas, Decimais ou Hexadecimais.
- Cole no painel Entrada à esquerda.
- Leia o resultado escapado (ou desescapado) no painel Saída à direita e clique em Copiar.
- Exemplo carrega uma string de demonstração; Limpar repõe os painéis.
Principais funcionalidades#
- Três estilos de escape num só seletor. Alterne entre nomeadas, decimais e hexadecimais sem voltar a colar, o que torna a comparação de saídas trivial.
- Correto para caracteres astrais. A iteração é por ponto de código Unicode, não por unidade de código UTF-16, pelo que um emoji como
🌍é tratado como um carácter (🌍), não um par de substitutos partido. - Descodificador curado e seguro. O mapa de entidades nomeadas cobre as referências HTML5 comuns (copyright, trademark, letras acentuadas, símbolos matemáticos, aspas e travessões). Nomes desconhecidos passam inalterados em vez de serem corrompidos.
- Sem envolvimento do DOM. A codificação e decodificação são operações puras de strings — sem injeção de
<div>escondida — pelo que a lógica é totalmente testável e não há risco de a própria ferramenta interpretar a sua entrada como markup.
Exemplo prático#
Pegue num fragmento que mistura markup com um símbolo literal:
<a href="x">Tom & Jerry</a> © 2026
No modo Nomeadas, apenas os cinco caracteres perigosos são escapados e o © é deixado em paz (não é estruturalmente perigoso):
<a href="x">Tom & Jerry</a> © 2026
Mude para Decimais e o © torna-se também o seu ponto de código, enquanto os caracteres centrais mudam para forma numérica:
<a href="x">Tom & Jerry</a> © 2026
No modo Hexadecimais os mesmos caracteres aparecem como pontos de código hexadecimais:
<a href="x">Tom & Jerry</a> © 2026
A decodificação inverte todos estes: cole qualquer uma das três saídas de volta com Decodificar selecionado e obtém o fragmento original, incluindo o ©.
FAQ#
Que modo devo usar para tornar uma string segura de colocar dentro de HTML?#
Nomeadas é quase sempre a predefinição certa para os cinco caracteres perigosos — é legível, bem compreendida por todos os navegadores, e mantém a saída amigável a diffs. Recorra a Decimais ou Hexadecimais quando especificamente precisa que todos os caracteres não-ASCII fiquem seguros para ASCII (por exemplo, preparar conteúdo para um transporte que rejeita bytes altos), não para escape comum.
Descodifiquei © mas um nome estranho como &mytag; saiu inalterado. Porque?#
O decodificador só resolve entidades que efetivamente conhece — um subconjunto HTML5 curado dos nomes comuns. &mytag; não é uma entidade HTML real, pelo que a ferramenta o deixa inalterado em vez de adivinhar ou descartá-lo. Se mesmo assim precisa que todas as entidades definidas em DTD sejam resolvidas, está fora do âmbito de um conversor de strings e dentro da verdadeira análise de HTML.
Fazer escape de HTML chega para tornar a entrada do usuário segura numa string JavaScript ou numa URL?#
Não. Cada contexto tem as suas próprias regras. O escape de HTML protege contra injetar markup, mas uma string como '); alert(1); // é inofensiva em HTML e perigosa dentro de um <script>. A mesma entrada também precisa de codificação de URL antes de ir para uma ligação. Faça escape para o contexto de destino, não apenas uma vez.
Porque é que a saída hexadecimal usa letras minúsculas (© e não ©)?#
Hexadecimal minúsculo é a forma convencional e mais limpa, e é analisada de forma idêntica por todos os navegadores. Se precisar de maiúsculas para um guia de estilo, o modo decimal (©) contorna a questão inteiramente, ou passe a saída por uma transformação de maiúsculas/minúsculas sua.