Esto me ha estado confundiendo durante algún tiempo. Con la llegada de UTF-8 como el estándar de facto en el desarrollo web, no estoy seguro en qué situaciones se supone que debo usar las entidades HTML y para cuáles debo usar el carácter UTF-8. Por ejemplo,
- em guión (-,
&emdash;
) - ampersand (&,
&
) - 3/4 fracción (¾,
¾
)
Por favor, arroje luz sobre este tema. Será apreciado.
html
xhtml
html-entities
allesklar
fuente
fuente
Respuestas:
Por lo general, no es necesario utilizar entidades de caracteres HTML si su editor admite Unicode. Las entidades pueden resultar útiles cuando:
código es más claro que el carácter de espacio en blanco correspondiente.<
,&
o"
.fuente
al margen : Wikipedia todavía exige en lugar del carácter de espacio en blanco real, en parte porque Firefox convierte U + 00A0 en U + 0020 en formas. Entonces, usar la entidad en ese caso es la única manera de garantizar que la fuente no se estropee cada vez que un usuario de Firefox la edite.<
que a menudo es necesario escapar, nunca>
(y"
solo rara vez se necesita escapar dentro de los valores de los atributos).&
, ¿ debería usarse siempre en lugar de&
? ¿Hay alguna razón para esto?Basándome en los comentarios que he recibido, analicé esto un poco más. Parece que actualmente la mejor práctica es renunciar al uso de entidades HTML y usar el carácter UTF-8 real en su lugar . Las razones enumeradas son las siguientes:
Siempre que la codificación de su página esté configurada correctamente en UTF-8, debe usar el carácter real en lugar de una entidad HTML. Leí varios documentos sobre este tema, pero los más útiles fueron:
Del artículo UTF-8: El secreto de la codificación de caracteres :
Ese artículo también ofrece un buen ejemplo sobre la codificación china. Aquí está el ejemplo abreviado por el bien de la pereza:
UTF-8:
這兩個字是甚麼意思
Entidades HTML :
這兩個字是甚麼意思
Las codificaciones de entidad UTF-8 y HTML no tienen sentido para mí, pero al menos la codificación UTF-8 es reconocible como un idioma extranjero y se representará correctamente en un cuadro de edición. El artículo continúa diciendo lo siguiente sobre la versión codificada por entidad HTML:
Como han señalado otros, todavía tiene que usar entidades HTML para caracteres XML reservados (ampersand, menor que, mayor que).
fuente
&entity;
sintaxis dentro de un documento HTML con un juego de caracteres UTF-8 declarado, ¿correcto? Si bien los caracteres UTF-8 simples son mejores por las razones que ha enumerado, no hay ningún problema en tener algunas entidades HTML junto a ellas en el mismo documento.No usaría UTF-8 para caracteres que se confunden visualmente con facilidad. Por ejemplo, es difícil distinguir un emdash de un menos, o especialmente un espacio que no se rompe de un espacio. Para estos personajes, definitivamente usa entidades.
Para los caracteres que se entienden fácilmente visualmente (como los ejemplos chinos anteriores), use UTF-8 si lo desea.
fuente
Personalmente, hago todo en utf-8 desde hace mucho tiempo, sin embargo, en una página html, siempre es necesario convertir los símbolos de unión (&), caracteres mayores que (>) y menores que (<) a sus entidades equivalentes, & amp ;, & gt; y & lt;
Además, si tiene la intención de realizar alguna programación utilizando texto utf-8, hay algunas cosas que debe tener en cuenta.
fuente
Las entidades pueden comprarle compatibilidad con clientes con muerte cerebral que no entienden las codificaciones correctamente. No creo que eso incluya los navegadores actuales, pero nunca se sabe qué otros tipos de programas pueden estar afectando.
Más útil, sin embargo, es que las entidades HTML lo protegen de sus propios errores: si configura incorrectamente algo en el servidor y termina sirviendo una página con un encabezado HTTP que dice que es
ISO-8859-1
y unaMETA
etiqueta que dice que esUTF-8
, al menos su & mdash; es siempre funcionará.fuente
&mdash
muestra correctamente, incluso si los encabezados están mal configurados, es más difícil detectar que hay un problema.Las entidades HTML son útiles cuando desea generar contenido que se incluirá (dinámicamente) en páginas con (varias) codificaciones diferentes. Por ejemplo, tenemos contenido de etiqueta blanca que se incluye en páginas web codificadas con ISO-8859-1 y UTF-8 ...
Si la conversión del conjunto de caracteres de / a UTF-8 no fuera un lío tan grande y poco confiable (siempre se tropieza con algunos caracteres y algunas herramientas que no se convierten correctamente), la estandarización en UTF-8 sería el camino a seguir.
fuente
Si sus páginas están codificadas correctamente en utf-8, no debería necesitar entidades html, solo use los caracteres que desee directamente.
fuente
Todas las respuestas anteriores tienen sentido para mí.
Además: depende principalmente del editor que intente utilizar y del idioma del documento. Como requisito mínimo para el editor es que sea compatible con el idioma del documento. Eso significa que, si su texto está en japonés, tenga cuidado con el uso de un editor que no los muestre (es decir, sin entidades para el documento en sí). Si es en inglés, incluso puede usar un editor antiguo similar a vim y usar entidades solo para el relativo rara vez & copy; y amigos. Por supuesto: & gt; para> y otros HTML-specials todavía necesitan escapes. Pero incluso con los otros idiomas latin-1 (alemán, francés, etc.) escribir ä es un fastidio, ya sabes dónde ...
Además, personalmente escribo entidades para caracteres invisibles y aquellos que tienen un aspecto similar al ascii estándar y, por lo tanto, se confunden fácilmente. Por ejemplo, hay u1173 (que parece un guión en algunos juegos de caracteres) o u1175, que se parece a la barra vertical. Usaría entidades para esos en cualquier caso.
fuente