2012-03-06 21 views
14

Estoy trabajando con una gran cantidad de archivos HTML que en su mayoría están codificados como utf-8. Hay personajes acentuados en abundancia, muchos están en francés. Los he ido convirtiendo en entidades HTML a medida que avanzo, pero noté que incluso en IE5.5 (según el comprobador de IE), los caracteres acentuados no convertidos se muestran correctamente.¿Deberían todos los caracteres acentuados usar entidades html?

¿Debería preocuparme por la visualización de caracteres y convertirlos a entidades HTML solo para estar seguro?

Respuesta

17

Si los archivos están codificación UTF-8, que debe establecer la cabecera Content-Type ser text/html; charset=UTF-8 y tienen una etiqueta meta equivalente en la página:

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

Esto le da al navegador toda la información para la visualización de UTF 8 caracteres correctamente No hay necesidad de codificar caracteres acentuados.

+0

Juego de caracteres incorrecto allí. – tchrist

+0

@tchrist - Gracias. – Oded

+0

Siempre pensé que esta metaetiqueta por sí sola era bastante inútil. Para que el navegador pueda leer la etiqueta, debe saber o adivinar el juego de caracteres por otro medio y al menos obtener "lo suficientemente cerca". –

2

Lo que debe recordar es que el francés es parte de la familia UTF-8 junto con el portugués, español, etc., por lo que se mostrarán correctamente con una etiqueta UTF-8 y siempre que el navegador también utilice UTF- 8 para la página.

El problema es cuando una persona que utiliza un navegador que está forzando a otro juego de caracteres entra en la página, esto romperá los caracteres no codificados. Esto sucede un poco aquí en Brasil, donde muchos buscadores no están configurados para la detección automática del juego de caracteres y están configurados en ISO-8859-1, que es común aquí.

De ser posible, codifique todos sus caracteres "especiales" para obtener el acceso más universal posible.

Espero que ayude!

+0

¿Sabes qué situaciones llevan a que un navegador fuerce otro juego de caracteres? – Damon

+1

Hay 2 factores, el primero y el más común es que algunos navegadores en algunos idiomas no usan UTF-8 como el predeterminado ya que no son lenguajes UTF-8 o UTF-8 no es tan común como otro juego de caracteres en esos países, el segundo es la preferencia del usuario, por ejemplo un sitio necesitaba cambiar el juego de caracteres y el usuario se olvidó de cambiarlo. – Ryan

4

Normalmente no hay ninguna razón para usar entidades para caracteres como letras acentuadas. Usarlos es válido, pero tiende a ofuscar el código fuente y, por lo tanto, puede causar errores.

Sin embargo, en algunos casos se necesitan las entidades. Las razones no están relacionadas con los navegadores sino con el lado de la creación. En particular, si necesita editar los archivos usando un editor o un programa de autoría que no maneje bien las letras acentuadas, puede encontrar entidades útiles. Lo mismo se aplica si los datos tienen que pasar por algún software que tenga problemas similares. Y en algunos casos, debe trabajar en un entorno donde no tenga control sobre los encabezados HTTP y los encabezados especifiquen una codificación que no le permita ingresar todos los caracteres directamente.

Cuestiones relacionadas