27 noviembre 2007

Problemas en webs con codificación UTF-8

Me he encontrado con este problema al instalar en la versión española de phpTrafficA, un portal PHP-MySQL para estadísticas. Los caracteres latinos salían incorrectamente a pesar de tener configurado en el HTML:

<?xml version="1.0" encoding="UTF-8"?>
o
<meta equiv="content-type" content="text/html; charset=UTF-8">

Existen varias soluciones:
  • Modificar apache2.conf. Por defecto las páginas PHP se suelen servir con codificación ISO-8859-1. Se podría forzar a servirlas en UTF-8 poniendo: AddDefaultCharset UTF-8
  • Modificar el fichero .htaccess del directorio web, pudiendo desactivar (AddDefaultCharset off) o forzar UTF-8 (AddDefaultCharset utf-8)
  • Configurando la cabecera de las páginas mediante PHP, añadiendo al principio de las páginas:
    <?php header('Content-Type: text/html; charset=UTF-8'); ?>

No hay comentarios: