¿Por qué usar entidades HTML en lugar de simplemente poner caracteres Unicode en HTML?


12

Digamos que quiero poner un carácter no suave en un archivo HTML; por ejemplo, '→'. ¿Hay alguna razón por la que deba ingresarlo como '& rarr;' en lugar de simplemente poner '→' en el archivo HTML? Suponga que mi archivo HTML está codificado y transmitido en algún formato Unicode.

Respuestas:


10

Esas dos declaraciones finales son grandes suposiciones.

Por ejemplo, tenemos una aplicación web que usa AJAX en su significado literal: la usamos para cargar documentos XML sobre la marcha. Si el documento XML no tiene el content-encodingencabezado correcto (o carece de uno), entonces los caracteres unicode (comillas inteligentes, guiones largos, incluso algunos espacios en blanco especiales y la palabra Café) hacen que Internet Explorer caiga en el culo cada vez. La solicitud de AJAX simplemente falla y dispara un error de JavaScript.

Sin embargo, si hacemos un reemplazo del lado del servidor de todos los caracteres Unicode con sus entidades HTML, todo funciona bien.

Por supuesto, si su archivo tiene los encabezados de contenido correctos, esto no debería ser un problema para ningún navegador moderno.


0

Sin embargo, si hacemos un reemplazo del lado del servidor de todos los caracteres Unicode con sus entidades HTML, todo funciona bien.

Esto supone que todos los caracteres se pueden reemplazar con entidades HTML, que no pueden. Use los encabezados correctos y detecte estos problemas (usando el encabezado incorrecto) temprano, en lugar de confundirse cuando ocurran más tarde.


77
En realidad, cada carácter unicode tiene una entidad HTML apropiada.
Mark Henderson el

Oh, mi mal, estaba pensando en las entidades nombradas. :)

0

Solo para agregar a la excelente respuesta aceptada: en general, los archivos ASCII son mucho más portátiles en varios editores.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.