Yo he diseñado una función que actua en funión del tipo de codificación de la cadena que recibe. Yo la uso para recuperar datos (de una bd) con diferente codificación.
La cuelgo por si ha alguien más le puede servir.
saludos,
Código PHP:
function decode($string)
{
if(mb_detect_encoding($string, 'UTF-8', true))
return utf8_decode(stripcslashes($string));
else
return htmlspecialchars(stripcslashes($string));
}