Conversor de entidades HTML

5 de 2 avaliações

O Conversor de entidades HTML é uma ferramenta gratuita que converte referências de caracteres HTML em caracteres descodificados e vice-versa, para utilização em páginas Web, sistemas de gestão de conteúdos e outros formatos baseados em texto.

O que são entidades HTML e para que servem?

As entidades HTML representam caracteres através de texto que o HTML consegue distinguir da sua própria marcação. Uma referência de carácter HTML começa geralmente por um E comercial e termina com um ponto e vírgula. Pode ser uma referência com nome, como & para representar um E comercial, ou uma referência numérica, como £ para o símbolo da libra.

Estas referências são úteis quando um carácter tem um significado especial em HTML. Um sinal de menor literal pode ser confundido com o início de uma etiqueta, pelo que pode ser escrito como <. As referências de caracteres também permitem representar determinados caracteres em HTML ou em linguagens de marcação compatíveis, sem os confundir com marcação ou sintaxe de controlo.

A codificação de entidades não é uma forma de encriptação e não oferece qualquer confidencialidade. Qualquer pessoa pode ler ou descodificar uma referência de entidade, pelo que nunca deve ser usada para ocultar palavras-passe, dados pessoais ou conteúdo confidencial.

Como uso o conversor de entidades HTML?

Introduz o texto pretendido no campo Codificar ou Descodificar e consulta o resultado correspondente em Entidade HTML codificada ou Entidade HTML descodificada. Usa o resultado codificado quando o texto tiver de aparecer num contexto de texto ou de atributo HTML adequado. Usa o resultado descodificado quando precisares dos caracteres representados pelas entidades existentes.

A conversão é efetuada no servidor. O conteúdo introduzido é enviado para o servidor através de HTTPS e não é armazenado.

Antes de converter, confirma se precisas realmente de entidades HTML. O valor de um parâmetro de consulta requer normalmente codificação percentual de URL, enquanto um domínio internacionalizado utiliza Punycode. O Decodificador de URL e o Conversor IDN Punycode destinam-se, respetivamente, a esses formatos.

Qual é o aspeto de um resultado codificado ou descodificado?

Um resultado descodificado substitui as referências de entidades reconhecidas pelos caracteres que representam. Já a forma codificada representa os caracteres através da sintaxe de entidades.

Entrada: <p>Tea & cake</p>

Resultado descodificado: <p>Tea & cake</p>

Os parênteses angulares do resultado descodificado são caracteres que podem transformar-se em marcação HTML se forem inseridos numa página como HTML. A descodificação não higieniza o conteúdo, não remove scripts nem torna seguro código HTML não fidedigno. Trata o conteúdo descodificado de acordo com o contexto em que vai ser utilizado.

Exemplos práticos e casos menos óbvios

As entidades com nome e as referências numéricas de caracteres podem representar o mesmo carácter de formas diferentes. Por exemplo, &amp; é uma referência com nome para um E comercial, enquanto &#38; é a respetiva referência numérica decimal e &#x26; é a forma hexadecimal.

  • Os espaços normais e os números literais não são referências de entidades e, geralmente, permanecem como texto comum.
  • A pontuação só muda quando aparece como uma referência de entidade reconhecida ou quando é codificada de forma intencional.
  • As letras acentuadas, os sistemas de escrita não latinos e os emoji podem ser representados por referências numéricas de caracteres, que identificam pontos de código Unicode independentemente da codificação do código-fonte HTML. A apresentação correta depende do suporte do tipo de letra. Já a codificação de caracteres é relevante se o resultado descodificado for armazenado ou transmitido.

Ao preparar entidades, inclui o ponto e vírgula final. Os navegadores aceitam algumas referências sem ponto e vírgula em contextos limitados, mas essa forma abreviada pode ser ambígua e é menos compatível entre analisadores.

Onde aparecem as entidades HTML no dia a dia?

As entidades HTML aparecem frequentemente no código-fonte HTML, em sistemas de gestão de conteúdos, em editores de texto formatado e em mensagens de correio eletrónico em HTML. Por exemplo, a vista de código do WordPress pode conter &nbsp; para representar um espaço não separável ou &amp; quando é necessário preservar um E comercial na marcação.

Também podem surgir dentro de dados transportados por outro formato. Isto cria várias camadas de codificação, que têm de ser processadas pela ordem correta.

  • Um conteúdo JSON pode incluir um fragmento HTML cujo texto contém entidades. A aplicação de sequências de escape em JSON e a descodificação de entidades HTML são operações distintas.
  • Uma cadeia de consulta pode conter HTML com codificação percentual. Descodifica primeiro a camada do URL e só depois determina se o texto resultante também contém entidades.
  • Um URI de dados pode conter HTML ou outro texto com entidades, embora o próprio URI possa usar codificação percentual ou Base64.
  • Uma mensagem de correio eletrónico em HTML pode codificar pontuação visível e, ao mesmo tempo, usar codificação de transferência MIME para o transporte.
  • Um domínio internacionalizado pode aparecer junto de HTML codificado com entidades, mas o próprio domínio é normalmente representado com Punycode, não com entidades HTML.

Porque falha a descodificação de entidades HTML ou aparecem caracteres estranhos?

A descodificação costuma falhar porque a entrada está malformada, utiliza outro esquema de codificação ou contém mais do que uma camada de codificação. Verifica se o texto original contém referências de caracteres HTML com nome ou numéricas, em vez de aplicares conversões repetidamente sem analisar o resultado.

  • Referência malformada: A ausência do E comercial, do cardinal ou do ponto e vírgula pode impedir o reconhecimento. Compara o texto com formas como &amp; ou &#38;.
  • Entrada com codificação dupla: Um texto como &amp;lt; pode ser descodificado uma vez para &lt; e exigir uma segunda passagem intencional para se transformar num sinal de menor.
  • Codificação de caracteres incorreta: Um texto interpretado com a codificação de caracteres errada pode apresentar símbolos de substituição ou caracteres acentuados corrompidos.
  • Formato errado: Um texto com sinais de percentagem pode estar codificado como URL. Uma sequência longa composta por letras, algarismos, sinais de mais, barras ou sinais de igual no fim pode estar em Base64.
  • Se a entrada estiver em Base64, variante ou alfabeto incorretos: O Base64 seguro para URL utiliza caracteres diferentes do Base64 padrão. A ausência de preenchimento também pode causar erros em alguns descodificadores. Estes problemas não fazem parte da sintaxe das entidades HTML e requerem um Decodificador Base64.

Perguntas frequentes

Porque é que &nbsp; parece um espaço normal?

Representa um espaço não separável, que normalmente tem o mesmo aspeto de um espaço comum, mas impede uma mudança de linha nessa posição. Os editores podem preservá-lo sem o tornar visível. Para diagnosticar problemas de espaçamento, consulta a vista do código-fonte ou verifica que carácter ocupa essa posição.

Os nomes das entidades HTML distinguem maiúsculas de minúsculas?

Sim. As referências de caracteres com nome têm grafias definidas, e a utilização de maiúsculas ou minúsculas pode determinar se uma referência é reconhecida. Usa o nome publicado exato e inclui o respetivo ponto e vírgula, em vez de depender da correção de erros feita pelo navegador.

Tenho de usar entidades para todas as letras acentuadas?

Não. Um documento HTML em UTF-8 corretamente declarado pode conter diretamente caracteres como é, £ e 中文. As entidades continuam a ser úteis quando são exigidas pela sintaxe da marcação, por um sistema antigo ou por uma regra de publicação específica.

Posso usar entidades HTML em XML?

O XML só inclui por predefinição um pequeno conjunto de entidades com nome, entre as quais &amp;, &lt;, &gt;, &quot; e &apos;. Muitos nomes válidos em HTML são inválidos em XML, exceto se forem definidos por um tipo de documento. Por isso, as referências numéricas de caracteres são frequentemente a opção mais segura.

Um conversor de entidades corrige HTML com erros?

Não. Pode converter referências de entidades, mas não equilibra etiquetas, não corrige o aninhamento nem valida o documento. Depois da conversão, verifica a marcação envolvente e usa um validador de HTML se a página continuar a apresentar um comportamento inesperado.

Verificações finais

Confirma se a origem utiliza referências de caracteres HTML com nome ou numéricas, converte apenas a camada de referências necessária e compara o resultado com o texto que deveria ficar visível. Antes de inserires conteúdo descodificado numa página publicada, verifica os parênteses angulares, as aspas e os E comerciais resultantes no respetivo contexto HTML.

Ferramentas Populares