Por que usar entidades HTML em vez de apenas colocar caracteres Unicode em HTML?


12

Digamos que eu queira colocar um caractere não agradável em um arquivo HTML; por exemplo, '→'. Existe alguma razão para eu inseri-lo como '& rarr;' em vez de apenas colocar '→' no arquivo HTML? Suponha que meu arquivo HTML seja codificado e transmitido em algum formato Unicode.

Respostas:


10

Essas duas declarações finais são grandes suposições.

Por exemplo, temos um aplicativo da web que usa AJAX com seu significado literal - usamos para carregar documentos XML em tempo real. Se o documento XML não tiver o content-encodingcabeçalho correto (ou estiver faltando um), quaisquer caracteres unicode (citações inteligentes, traços longos, até algum espaço em branco especial e a palavra Café) farão com que o Internet Explorer caia no chão todas as vezes. A solicitação AJAX simplesmente falha e dispara um erro javascript.

No entanto, se fizermos uma substituição no servidor de todos os caracteres unicode por suas entidades HTML, tudo funcionará perfeitamente.

Obviamente, se o seu arquivo tiver os cabeçalhos de conteúdo corretos, isso não deve ser um problema para qualquer navegador moderno.


0

No entanto, se fizermos uma substituição no servidor de todos os caracteres unicode por suas entidades HTML, tudo funcionará perfeitamente.

Isso pressupõe que todos os caracteres podem ser substituídos por entidades HTML, o que eles não podem. Use os cabeçalhos corretos e identifique esses problemas (usando o cabeçalho errado) com antecedência, em vez de ficar confusos quando ocorrerem mais tarde.


7
Na verdade, todo caractere unicode possui uma entidade HTML apropriada.
Mark Henderson

Oh, meu mal, eu estava pensando nas entidades nomeadas. :) #

0

Apenas para acrescentar à excelente resposta aceita: no geral, os arquivos ASCII são muito mais portáteis em vários editores.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.