html - hexadecimales - rgb to hex google
Entidades HTML: cuándo usar decimal y hexadecimal (3)
¿Existe una buena regla general para cuándo usar la notación decimal frente a la notación hexadecimal para las entidades HTML?
Por ejemplo, un guión sin interrupción se escribe en decimal como ‑
y en hexadecimal como ‑
.
Esta answer dice que el hexadecimal es para Unicode; ¿eso significa que se debe usar hexadecimal si está usando la etiqueta <meta charset="utf-8">
en el documento <head>
?
De vez en cuando, me daré cuenta de que los caracteres de entidad se representan por error en lugar de las entidades que representan, por ejemplo, &
Apareciendo (en lugar de un signo) en una línea de asunto de correo electrónico o título de RSS. ¿Es mejor el hexadecimal o el decimal para evitar esto?
Una última consideración: ¿puede el uso de hexadecimal o decimal afectar la claridad de representación (nitidez) del personaje?
En general
HTML (y XML) ofrece tres formas de codificar caracteres especiales: hexadecimal numérico &
, decimal numérico &
(también conocido como "referencias de caracteres"), y se llama &
(también conocido como "referencias de entidad"). Han permanecido igualmente válidos y totalmente compatibles con todos los principales navegadores durante décadas. Funcionan con cualquier codificación, pero siempre se procesan desde el conjunto Unicode (que es compatible con ASCII, ISO Latin y Windows Latin, códigos negativos 128-159).
Así que depende de las preferencias personales, con algunas cosas que vale la pena mencionar.
Necesidad
Si agrega la meta
charset adecuada a su HTML, no necesita codificar caracteres especiales en absoluto (excepto & < > " ''
, o más generalmente, solo & <
en texto suelto). La excepción es querer codificar una el carácter no está presente en la codificación especificada. Pero si usa UTF-8, puede representar cualquier cosa de Unicode de todos modos.
Brevedad
Para cualquier carácter debajo del índice 10, el decimal es más corto. Una pestaña es 	
, frente a 	
, por lo que puede valer la pena para etiquetas pre
contienen una gran cantidad de datos de TSV, por ejemplo.
Facilidad de uso
Las referencias con nombre son las más fáciles de usar y memorizar, especialmente para el código compartido entre desarrolladores de diferentes orígenes y conjuntos de habilidades. <
es mucho más intuitivo que <
. En cuanto al comentario de alguien más con respecto a la relevancia, en realidad aún son totalmente compatibles como parte del estándar W3C, e incluso se han ampliado para HTML5.
Mejores prácticas
El uso de referencias nombradas o decimales puede no ser la mejor práctica general ya que los nombres son solo en inglés y exclusivos de HTML (incluso XML carece de referencias con nombre, menos los "cinco grandes"). La mayoría de los lenguajes de programación y tablas de caracteres utilizan codificación hexadecimal, por lo que hace que las cosas sean más fáciles y más portátiles a largo plazo cuando se mantiene constante. Aunque para proyectos pequeños o casos especiales, puede que realmente no importe.
Más información: http://xmlnews.org/docs/xml-basics.html#references
Estos se llaman referencias de caracteres numéricos . Se derivan de SGML y la parte numérica de ellos hace referencia al punto de código Unicode específico del carácter que está intentando mostrar. Le permiten representar caracteres de Unicode, incluso si el conjunto de caracteres en particular en el que escribió el HTML no tiene el carácter al que hace referencia. Si hace referencia al punto de código con decimal o hexidecimal no importa, excepto para los navegadores muy antiguos que prefieren decimal. Se agregó soporte hexidecimal porque los puntos de código Unicode están referenciados en notación hexadecimal y hace que sea mucho más fácil buscar el punto de código y luego agregar la referencia, sin tener que convertir a decimal :
U+007D
=
}
Para responder tu pregunta:
Esta respuesta dice que el hexadecimal es para Unicode; ¿eso significa que se debe usar hexadecimal si está usando la etiqueta
<meta charset="utf-8">
en el documento?
Debe comprender que UTF-8 es compatible con versiones anteriores con ASCII / ISO-8859-1. Por lo tanto, los primeros 256 caracteres de UTF-8 serán los mismos en ASCII y UTF-8. Hex es más fácil para UTF-8 porque, a partir de 2013, hay 1,114,112 puntos de código Unicode. Así que es más fácil escribir �
de lo que es escribir �
etc.
La regla de oro es: use lo que prefiera, pero prefiera hex. ☺
No hay diferencia en el significado ni diferencia en la compatibilidad del navegador (los últimos navegadores que admitían referencias decimales solo murieron en la década de 1990).
Como describe @AlexW, las referencias hexadecimales son más naturales que las decimales, debido a la forma en que se escriben los estándares de los códigos de caracteres. Pero si encuentra referencias decimales más convenientes, utilícelas.
El problema no tiene nada que ver con las etiquetas meta
y codificaciones de caracteres. La razón principal por la que las referencias de caracteres se introdujeron en HTML es que le permiten ingresar caracteres de manera bastante independiente de la codificación del documento. Esto incluye caracteres que no se pueden escribir directamente en la codificación utilizada. Gracias a ellos, puede ingresar cualquier carácter Unicode incluso si la codificación de caracteres es ASCII o alguna otra codificación limitada, como ISO-8859-1.
En los viejos tiempos, era común recomendar el uso de referencias con nombre (o "referencias de entidad" como se denominan formalmente en HTML clásico), cuando es posible, porque una referencia como Ω
, cuando se muestra literalmente al usuario, es más comprensible que una referencia como Ω
o Ω
. Esto no ha sido relevante durante más de una década, en la medida en que se consideran los navegadores web. Pero, por ejemplo, los clientes de correo electrónico pueden ser un poco estúpidos ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H subdesarrollados a este respecto. Por ejemplo, pueden mostrar referencias como tales en una lista de mensajes, aunque pueden interpretarlos correctamente cuando ven un mensaje. Pero no parece haber ningún comportamiento consistente con el que puedas contar.