2012-03-21 16 views
14

recientemente he notado una gran cantidad de sitios de alto perfil con caracteres directamente en su fuente, por ejemplo:HTML5: ¿qué es mejor, usar una entidad de personaje vs usar un personaje directamente?

<q>“Hi there”</q> 

En lugar de:

<q>&ldquo;Hi there&rdquo;</q> 

¿Cuál de estos es preferible? Siempre he usado entidades en el pasado, pero el uso del personaje directamente parece más legible y parece estar bien en un documento Unicode.

+1

obviamente usar los caracteres directamente podría arruinarlo en un documento no Unicode, pero sí, si está en UTF-8 debería funcionar bien. +1, buena pregunta; preguntándome a mí mismo –

+1

¿Qué es este "documento no Unicode" del que usted habla? :) (Más en serio, este es 2012, deberíamos haber renunciado a ISO-8859 y sus amigos propietarios hace una década). – Quentin

+1

especificaciones HTML5 para juego de caracteres también dice "se anima a los autores a utilizar Unicode" http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset – mikemaccana

Respuesta

6

Si la codificación es UTF-8, los caracteres normales funcionarán bien, y no hay ninguna razón para no usarlos. Los navegadores que no son compatibles con UTF-8 tendrán muchos otros problemas al mostrar una página web moderna, así que no se preocupe.

Por lo tanto, es más fácil y más legible utilizar los caracteres y yo preferiría hacerlo.

También ahorra un par de bytes, lo que es bueno, aunque hay mucho más que ganar al usar compresión y minificación.

+2

la otra ventaja es que si use los caracteres reales por defecto, luego el contenido enviado por el usuario se verá bien incluso si no está codificado; por ejemplo, en mi blog tengo la opción de leer en texto sin formato, lo que no funcionaría si usara las entidades html. –

1

Usando caracteres directamente. Son más fáciles de leer en la fuente (¡lo cual es importante ya que la gente tiene que editarlos!) Y requieren menos ancho de banda.

2

La principal ventaja que puedo ver con la codificación de caracteres es que se verán bien, incluso si la página se interpreta como ASCII.

Por ejemplo, si su página es solo un archivo HTML sin formato, la configuración predeterminada en algunos servidores sería servirlo como text/html; charset=ISO-8859-1 (default in HTTP 1.1). Incluso si establece la metaetiqueta para el tipo de contenido, el encabezado HTTP tiene una prioridad más alta.

Si esto es importante depende de la probabilidad de que un servidor configurado incorrectamente sirva la página.

1

El ejemplo dado es definitivamente mal, en la teoría como en la práctica, en HTML5 y en HTML 4. Por ejemplo, el HTML5 discussions of q markup dice: “puntuacion Cotización (como comillas) que está citando el contenido de la el elemento no debe aparecer inmediatamente antes, después o dentro de elementos q; el agente de usuario los insertará en la representación. "

Es decir, use el marcado'q 'o los signos de puntuación, no ambos. Este último es mejor en todas las cuentas prácticas.

En cuanto a la cuestión de las referencias de caracteres frente a entidades, las primeras son preferibles para la legibilidad, pero luego debe saber cómo guardar los datos como UTF-8 y declare the encoding correctamente. No es ciencia espacial, y generalmente es mejor. Pero si su entorno de autor es UTF-8 hostil, no debe avergonzarse de utilizar referencias de entidades.

+1

De hecho, agregué las cotizaciones a través de CSS; solo quería un ejemplo más pequeño para stackoverflow. PD: esto sería mejor como comentario, ya que no es parte de tu respuesta. – mikemaccana

Cuestiones relacionadas