2010-08-29 15 views
9

Al incluir entidades HTML en un documento HTML, ¿las entidades deben ser del mismo conjunto de codificación de caracteres que el documento se especifica que se va a usar?Entidades de caracteres HTML y conjunto de codificación de caracteres

Por ejemplo, si voy a utilizar el signo de copyright en un documento HTML que se especifica como UTF-8, ¿es necesario utilizar la entidad HTML Unicode (©) o está bien utilizar otras entidades, como ASCII entidad HTML (©)?

Por favor explique su respuesta. Soy consciente de que "funcionará", pero ¿hay algún caso en que no funcione?

Gracias!

+0

ASCII no incluye un símbolo de copyright en el conjunto de caracteres que codifica. – Thanatos

+0

Probablemente se refirió a ISO-8859-1 (ISO Latin 1).He escuchado a mucha gente usar ASCII indistintamente con esa codificación y aunque técnicamente no es lo mismo, simplemente supongo que significan Latín 1. – RibaldEddie

+0

En realidad, iba por una mesa como esta: http://www.ascii.cl /htmlcodes.htm Supuse que, dado que la tabla muestra una columna ASCII para el símbolo de copyright, estaba en la codificación. –

Respuesta

9

y © especifican el mismo carácter - 169 es equivalente a hexadecimal A9. Ambos especifican un símbolo de copyright. Las entidades de caracteres en HTML siempre hacen referencia a los puntos de código Unicode, esto está cubierto en el HTML 4 Standard. Por lo tanto, incluso si su conjunto de caracteres cambia, sus entidades aún se refieren a los mismos caracteres.

Esto también significa que puede codificar caracteres que en realidad no aparecen en el conjunto de caracteres de su elección. Acabo de crear un documento en el juego de caracteres ISO-8859-1, pero incluye un lambda griego. Además, ASCII no puede codificar directamente un símbolo de copyright, pero sí a través de entidades de caracteres.

Editar: Al leer los comentarios sobre la otra respuesta, quiero aclarar esto un poco. Si está utilizando UTF-8 como codificación de caracteres para su documento, puede, dentro de la fuente HTML sin formato, escribir un símbolo de copyright tal como está. (Necesita encontrar alguna forma de ingresarlo, por supuesto: copiar y pegar es lo habitual.) UTF-8 le permitirá codificar directamente cualquier símbolo que desee. ISO-8859-1 es mucho más limitado, y ASCII aún más. Por ejemplo, dentro de mi HTML, si mi documento es un documento UTF-8, puedo hacer:

<p>Hi there. This document is ©2010. Good day!</p> 

o:

<p>Hi there. This document is &#xA9;2010. Good day!</p> 

o:

La primera es solamente válido si el juego de caracteres admite "©". Los otros dos son siempre válidos, pero menos legibles. Cualquiera que sea el editor de texto que esté utilizando, si vale la pena, debería poder decirle qué conjunto de caracteres está codificando el documento.

Si hace esto, debe asegurarse de que su servidor web informe al documento cliente del juego de caracteres correcto, o que su documento declara que con algo como: UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

he usado allí como un ejemplo. XHTML debe tener el juego de caracteres en la etiqueta de apertura <?xml ... ?>.

+0

Corrija, por lo que si por algún motivo no utiliza Latin 1 ni Unicode como conjunto de caracteres del documento, puede mostrar el símbolo de copyright utilizando esas entidades. – RibaldEddie

+0

@Thanatos ¿Dónde está la fuente autorizada de esta información? Estoy haciendo un trabajo que cubre más que este caso de uso y me gustaría obtener más detalles. Gracias. –

+0

@jeyoung ¿En qué parte de esas publicaciones busca una fuente? La forma de codificar entidades se cita en la publicación, aunque hoy en día, me vincularía con el estándar HTML5 (pero no creo que HTML5 modifique este aspecto). Si solo está buscando el número (por ejemplo, cómo traducir © a '©'): primero, recomendaría usar UTF-8 y simplemente escribir el carácter literalmente, es decir, simplemente poner © o similar en su fuente, ya que luego es directamente legible por un ser humano (respuesta de RibaldEddie). De lo contrario, el número es solo el punto de código Unicode. shapecatcher.com te permitirá dibujar el personaje que necesitas, – Thanatos

4

La belleza de la codificación UTF-8 es que puedes simplemente incluir el carácter binario. No necesita codificarlo como una entidad en absoluto. Por lo tanto: ©

Oh, ¿solo quieres saber la diferencia entre las dos entidades? No hay ninguno. Uno describe el byte en hexadecimal y el otro en decimal.

+0

Por el "carácter binario", ¿quiere decir que podría simplemente copiar el símbolo de su respuesta y pegarlo en mi Documento HTML (lo que significa que se verá como el símbolo en el código) y, siempre que sea UTF-8, ¿está bien? –

+0

Esto. ¿De qué sirve usar UTF-8 si va a codificar todo en las entidades? ¡Esto es para lo que Unicode es! – You

+0

Correcto. Algunos caracteres aún necesitan ser codificados por entidad, pero solo aquellos que tienen un significado semántico en HTML, como menor que y mayor que. Pero el signo de copyright simplemente funciona (tm). – RibaldEddie

Cuestiones relacionadas