Tal vez sea relevante, mis sites estan basados en plantillas, es decir, cada seccion del site es una plantilla en HTML que leo desde PHP pasandole una serie de valores dinamicos para reemplazar palabras clave que estan escritas en el codigo HTML.
He estado haciendo un par de pruebas y cuando invoco la clase para mostrar el header lo muestra bien, con su codificacion, etc. Cuando hago lo propio con el contenido de la web lo muestra mal.
Código PHP:
$plantilla_cabecera = new template('web_cabeceras');
$plantilla_cabecera->parametros();
$plantilla_cabecera->muestra();
include(web::setModule() . '.php'); // Aqui cargo el modulo pertinente y a partir de aqui se jode el charset
$plantilla_cabecera = new template('web_pie');
$plantilla_cabecera->parametros();
$plantilla_cabecera->muestra();