Quando [não] usar entidades HTML?
É uma pergunta que está rodeada de confusões. Apesar disso a resposta, apesar de ser objectiva e relativamente simples, afastará muitos problemas irritantes e desnecessários.
As entidades são uma representação alternativa de um caracter para além do seu valor numérico no código ASCII ou do próprio caracter. Caracteres especiais têm um nome, a entidade, e podem ser representados por uma "sequência escapada". Por exemplo, o caracter í
, pode ser representado por í
.
Adicionalmente, qualquer caracter suportado pelo HTML pode ser representado por uma sequência composta por &#
seguido do valor numérico do caracter e um ponto e vírgula.
Com a chegada do unicode, o uso deste tipo de representação tornou-se em certa medida obsoleto e não é recomendado. Em vez disso, deve usar-se texto plano, pois impede problemas de portabilidade e pode ser lido olhando apenas para o código-fonte do documento.
Para que servem então as entidades?
É a pergunta que se impõe. A resposta é mais uma vez simples. Os caracteres que fazem parte da sintaxe do HTML (&
, <
, >
, etc.), têm forçosamente que ser escapados usando o tipo de notação descrito acima, pois de outra forma quebrariam a integridade do documento. Em variadas situações, podem também existir limitações ou problemas técnicos que podem ser resolvidos com recurso ao uso de entidades. Estas incluem entre outras:
- Migração de encoding.
- Situações onde o charset não é controlado pelo autor do documento.
- Não suporte para unicode por parte dos user-agents.
Para mais informação: http://www.w3.org/International/questions/qa-escapes