Qui n’a jamais eu de problème avec les caractères spéciaux? Après quelques heures à me battre avec les Charset, j’ai enfin réussi  trouver la solution!

$string est une chaine contenant les caractères spéciaux (normaux « é » et au format HTML « é »), encodée en ISO ou en UTF8. La chaine de sortie est en UTF8.

$string = mb_check_encoding($string, 'UTF-8')? utf8_encode($string):  $string;

En espérant résoudre le problème de certains … ;-)