Por Nacho Palou — 20 de Enero de 2006

Hace unos días varios usuarios del navegador Konqueror nos escribieron para avisarnos de que se veían caracteres raros en la portada después de haber convertido Microsiervos a UTF-8. En el resto de páginas la visualización de caracteres era correcta –y en realidad sólo ocurría a unos pocos usuarios con Konqueror (Linux), pero de todos modos echamos un vistazo a ver dónde podría estar el problema.

Microsiervos es un site plano con páginas estáticas guardadas como archivos .html. Excepto la portada o página principal que se genera y guarda como index.php. En realidad por ningún motivo concreto, sí por si en algún momento queremos o necesitamos incluir o probar algo de programación. Y ese era el motivo del mini-bug.

Por defecto nuestro servidor (y esto es muy habitual) estaba configurado para servir los archivos .php con codificación ISO-8859-1. Y aunque se indique una codificación distinta en el arhivo HTML generado o contenido en los archivos .php en ocasiones (como este caso con el navegador Konqueror) pueden surgir el conflictos.

Para solucionar esto encontré dos opciones:

  • Modificar la configuración de codificación (AddDefaultCharset) en el archivos de configuración del servidor Apache o desactivar esta configuración por defecto y que se declare en cada caso.
  • Más sencillo aún e ideal si no tienes acceso a ese archivo de configuración o utilizas un hosting compartido es añadir en el archivo .php la línea

    header('Content-Type: text/html; charset=UTF-8');

    para forzar la codificación UTF-8 e ignorar la codficación que está configurada en el servidor.

Desde aquí gracias a los lectores que nos avisaron del bug y especialmente a Carlos por ayudarnos a comprobar que el problema quedaba resuelto ¡gracias! :)

Actualización 23/01/2006: Pau escribe para recordar que también en el archivo .htaccess es posible hacer esta modificación de la configuración añadiendo un

AddDefaultCharset off

o

AddDefaultCharset utf-8

para anular el juego de caracteres por defecto de la configuración (iso-8859-1) o configurarlos como UTF-8, respectivamente.

Compartir en Flipboard Publicar / Tuitear