El caso es que no es por la codificación del charset por que si pongo en un echo o en html directamente cualquier carácter raro lo pone bien.
El problema está en si lo paso por post (creo que por get también) que el & me le pone como amp, el á me lo pone como a acute ... pero sin el ; típico del final.
No se a que puede ser debido y acudo a vos.
Un saludo.