Ejemplos de codificación de caracteres

Recomendaciones

  1. Haga coincidir la codificación con que guarde el documento en el editor de texto con la pasada en el head o la declaración XML si la hubiese
  2. Utilice el juego de caracteres utf-8 preferentemente
  3. Si utiliza utf-8, busque la opción utf-8 NO-BOM al guardar el documento

    Ultraedit


    Notepad2

  4. Recuerde que el Bloc de Notas de Windows incluye el BOM para utf-8
  5. Asegúrese que su servidor no está pasando encabezados adicionales.
    Puede agregar AddDefaultCharset off si tiene acceso a .htaccess
  6. Si utiliza PHP puede incluir al inicio de su script header("Content-Type: text/html;charset=utf-8");. Por defecto PHP ini suele definir iso-8859-1 como codificación predeterminada

Acerca de Byte Order Mark (BOM)

Esta explicación es algo sencilla y elemental, pero quizás nos permita entender y simplificar problemas al momento de ejecutar nuestras páginas ó intentar validarlas. Los documentos codificados en UTF-8 incluyen de por si una marca o byte de control, ubicado al inicio del documento, cuya función es identificarse a si mismos como documentos codificados en UTF-8. Este caracter de control debería ser completamente invisible (de hecho,los procesadores de texto no lo muestran), para otras codificaciones, ya que tiene las caracteríasticas denominadas espacio no-separable de anchura-cero, (en inglés zero-width no-break space).
En cuanto al validador de la W3C no reportará errores, pero si una advertencia indicando que el BOM puede ser un problema potencial.
Existe una situación especial, que suele ser en la cual se generan los mayores incovenientes. Imaginemos que confeccionamos nuestra página utilizando entidades HTML para representar los caracteres latinos no ingleses, Ñ, á, etc..., ya sea que utilicemos iso-8859-1 ó UTF-8, no observaremos errores en el texto. Sin embargo, si no cumplimos con el punto 1 de las recomendaciones y guardamos el documento como UTF-8 y en el charset de nuestro head definimos iso-8859-1, nos encontraremos que lo primero que hará visualizar nuestro Navegador será "  ", que no es más que el BOM visto por iso-8859-1. Esto puede llevar a comportamientos inesperados y fallos en la presentación de la página, y que se agravan aún si estamos utilizando PHP.

Ejemplos

archivo guardado como ANSI/ASCII y con Charset iso-8859-1
archivo guardado como ANSI/ASCII y con Charset utf-8
archivo guardado como utf-8 no bom y con Charset utf-8 (recomendado)
archivo guardado como utf-8 no bom y con Charset iso-8859-1
archivo guardado con utf-8+BOM y Charset utf-8
archivo guardado con utf-8+BOM y Charset iso-8859-1

El archivo del "texto de prueba" original puede ser descargado desde la Web de Markus Kuhn UTF-8-demo.txt

Guillermo Gianello - 22-5-09
foros@emprear.com