Isso tem me confundido há algum tempo. Com o advento do UTF-8 como o padrão de fato no desenvolvimento da web, não tenho certeza em quais situações devo usar as entidades HTML e para quais devo apenas usar o caractere UTF-8. Por exemplo,
- travessão (-,
&emdash;
) - e comercial (&,
&
) - Fração 3/4 (¾,
¾
)
Por favor, esclareça este assunto. Será apreciado.
html
xhtml
html-entities
Allesklar
fonte
fonte
Respostas:
Geralmente, você não precisa usar entidades de caracteres HTML se o seu editor suportar Unicode. As entidades podem ser úteis quando:
código é mais claro do que o caractere de espaço em branco correspondente.<
,&
ou"
.fonte
vez do caractere de espaço em branco real, em parte porque o Firefox converte U + 00A0 em U + 0020 em formulários. Portanto, usar a entidade nesse caso é a única maneira de garantir que a fonte não seja bagunçada toda vez que um usuário do Firefox a edita.<
que muitas vezes precisa de escape, nunca>
(e"
raramente precisa de escape dentro dos valores de atributo).&
, sempre deve ser usado em vez de&
? Existe um motivo para isso?Com base nos comentários que recebi, examinei isso um pouco mais. Parece que atualmente a melhor prática é renunciar ao uso de entidades HTML e usar o caractere UTF-8 real . Os motivos listados são os seguintes:
Contanto que a codificação da sua página esteja configurada corretamente para UTF-8, você deve usar o caractere real em vez de uma entidade HTML. Eu li vários documentos sobre este assunto, mas os mais úteis foram:
Do artigo UTF-8: O segredo da codificação de caracteres :
Esse artigo também fornece um bom exemplo envolvendo a codificação chinesa. Aqui está o exemplo abreviado por uma questão de preguiça:
UTF-8:
這兩個字是甚麼意思
Entidades HTML :
這兩個字是甚麼意思
As codificações de entidade UTF-8 e HTML não têm sentido para mim, mas pelo menos a codificação UTF-8 é reconhecível como um idioma estrangeiro e será renderizada corretamente em uma caixa de edição. O artigo prossegue dizendo o seguinte sobre a versão codificada por entidade HTML:
Como outros notaram, você ainda precisa usar entidades HTML para caracteres XML reservados (e comercial, menor que, maior que).
fonte
&entity;
sintaxe em um documento HTML com um conjunto de caracteres UTF-8 declarado, correto? Embora os caracteres UTF-8 simples sejam melhores pelos motivos que você listou, não há problema em ter algumas entidades HTML ao lado deles no mesmo documento?Eu não usaria UTF-8 para caracteres que são facilmente confundidos visualmente. Por exemplo, é difícil distinguir um emdash de um menos, ou especialmente um espaço não-separável de um espaço. Para esses personagens, definitivamente use entidades.
Para caracteres que são facilmente entendidos visualmente (como os exemplos em chinês acima), vá em frente e use UTF-8 se desejar.
fonte
Pessoalmente, faço tudo em utf-8 há muito tempo, no entanto, em uma página html, você sempre precisa converter e comercial (&), maior que (>) e menor que (<) caracteres em suas entidades equivalentes, & amp ;, & gt; e & lt;
Além disso, se você pretende fazer alguma programação usando texto utf-8, há algumas coisas a serem observadas.
fonte
As entidades podem comprar alguma compatibilidade com clientes com morte cerebral que não entendem as codificações corretamente. Não acredito que isso inclua nenhum navegador atual, mas você nunca sabe que outros tipos de programas podem estar afetando você.
Mais útil, porém, é que as entidades HTML protegem você de seus próprios erros: se você configurar algo incorretamente no servidor e acabar exibindo uma página com um cabeçalho HTTP que diz isso
ISO-8859-1
e umaMETA
tag que diz issoUTF-8
, pelo menos o seu & mdash; es sempre funcionará.fonte
&mdash
exibido corretamente mesmo se os cabeçalhos estiverem configurados incorretamente torna mais difícil detectar que há um problema.As entidades HTML são úteis quando você deseja gerar conteúdo que será incluído (dinamicamente) em páginas com (várias) codificações diferentes. Por exemplo, temos conteúdo com etiqueta em branco que está incluído em páginas da web codificadas com ISO-8859-1 e UTF-8 ...
Se a conversão do conjunto de caracteres de / para UTF-8 não fosse uma bagunça tão grande e pouco confiável (você sempre tropeça em alguns caracteres e algumas ferramentas que não convertem corretamente), padronizar em UTF-8 seria o caminho a percorrer.
fonte
Se suas páginas estão codificadas corretamente em utf-8, você não deve precisar de entidades html, apenas use os caracteres que deseja diretamente.
fonte
Todas as respostas anteriores fazem sentido para mim.
Além disso: depende principalmente do editor que você pretende usar e do idioma do documento. O requisito mínimo para o editor é que ele suporte o idioma do documento. Isso significa que se o seu texto estiver em japonês, tome cuidado ao usar um editor que não os mostre (ou seja, nenhuma entidade para o documento em si). Se estiver em inglês, você pode até usar um editor antigo semelhante ao vim e usar entidades apenas para o relativo raramente & copiar; e amigos. Claro: & gt; para> e outros especiais de HTML ainda precisam de escape. Mas mesmo com as outras línguas latin-1 (alemão, francês etc.), escrever ä é uma dor de cabeça, você sabe onde ...
Além disso, eu pessoalmente escrevo entidades para personagens invisíveis e aqueles que são semelhantes ao ASCII padrão e, portanto, são facilmente confundidos. Por exemplo, há u1173 (parecido com um traço em alguns conjuntos de caracteres) ou u1175, que se parece com a barra vertical. Eu usaria entidades para aqueles em qualquer caso.
fonte