Como usar
- Selecione Codificar para preparar o texto para HTML ou Decodificar para converter entidades em caracteres novamente.
- Ao codificar, escolha se as letras acentuadas e os símbolos devem ser mantidos ou convertidos em entidades.
- Digite ou cole o texto; o resultado é atualizado na hora.
- Copie o resultado ou use “Usar saída como entrada” para verificar se ele é decodificado de volta ao original.
Como funciona
Em HTML, alguns caracteres têm um significado especial: < inicia uma tag, & inicia uma entidade, e " ou ' encerram o valor de um atributo. Para exibi-los como texto, é preciso escrevê-los como referências de caracteres: < para <, > para >, & para &, " para " e ' para '. O apóstrofo usa a forma numérica porque ' não é definido no HTML 4.
Todos os outros caracteres, incluindo letras acentuadas, texto em chinês e emojis, podem ser escritos diretamente quando a página é salva e servida como UTF-8, o padrão em sites modernos. A conversão para entidades só é necessária em sistemas que não oferecem suporte adequado a UTF-8, como alguns modelos antigos de e-mail ou bancos de dados. Nesse caso, você pode escolher entidades nomeadas, como é, quando houver um nome comum (com uma alternativa numérica para os demais caracteres), ou referências numéricas, como é, para cada caractere.
A decodificação não usa o analisador HTML do navegador. Ela usa uma tabela integrada com todas as 252 entidades nomeadas do HTML 4.01, ' e cerca de 30 nomes comuns do HTML5, além de referências decimais e hexadecimais. As referências numéricas seguem as regras do HTML5: �, valores substitutos e valores acima de U+10FFFF são convertidos para o caractere de substituição �, e os valores de 128 a 159 são interpretados como Windows-1252, portanto – se torna um travessão. Alguns nomes antigos, como & e ©, também são aceitos sem o ponto e vírgula final, como nos navegadores. O HTML5 define mais de 2.000 nomes; os nomes raros que não estão na tabela permanecem inalterados e são listados.
Escapar texto antes de inseri-lo em HTML é uma medida importante contra cross-site scripting (XSS), mas só é correto para conteúdo de elementos e valores de atributos entre aspas. O texto inserido dentro de um bloco <script>, de um atributo style ou de uma URL precisa de outro tipo de escape.
Exemplos
Exibir código em uma página da web
Para exibir <div class="box"> como texto em uma publicação de blog, converta-o para <div class="box">. O navegador mostra a tag original em vez de criar um elemento.
Preparando texto para um modelo de e-mail antigo
Com a opção “Entidades nomeadas quando disponíveis”, “Café – 5 €” se transforma em Café – 5 €, que é exibido corretamente mesmo que o e-mail seja enviado com um conjunto de caracteres que não seja UTF-8.
Limpando texto extraído ou exportado
Uma exportação de CMS contém Fish & Chips – £9. Ao decodificar, o resultado é Fish & Chips – £9, pronto para colar em uma planilha.
Perguntas frequentes
Quais caracteres precisam ser escapados em HTML?
No conteúdo de elementos, & e < devem ser escapados (também é recomendado escapar >). Em valores de atributos, escape também o caractere de aspas que delimita o valor. Escapar os cinco caracteres (& < > " ') em todos os casos é a regra simples e segura adotada por esta ferramenta.
Qual é a diferença entre entidades nomeadas e numéricas?
Entidades nomeadas, como ©, são mais fáceis de ler, mas existem apenas para um conjunto limitado de caracteres. Referências numéricas, como © (decimal) ou © (hexadecimal), funcionam para todos os caracteres Unicode, inclusive emojis.
Por que é decodificado como algo que parece um espaço?
é um espaço não separável (U+00A0). Ele parece um espaço normal, mas impede a quebra de linha e não é reduzido pelo HTML. É um caractere diferente do espaço comum, o que importa ao comparar ou pesquisar texto.
Preciso codificar letras acentuadas, como é?
Não, se sua página usar UTF-8 (<meta charset="utf-8">), como acontece em quase todas as páginas modernas. Mantenha a configuração padrão para escapar apenas os cinco caracteres especiais.
A codificação é suficiente para evitar XSS?
É suficiente para texto não confiável inserido no conteúdo de elementos HTML ou em valores de atributos entre aspas. Não é suficiente para código JavaScript, CSS, atributos sem aspas ou URLs como href="javascript:…", que exigem tratamento específico para cada contexto.
Privacidade
A codificação e a decodificação são feitas no navegador com operações simples de texto; seu texto nunca é renderizado como HTML, enviado, armazenado ou incluído em análises.