Bueno, tras mucho buscar encontré la solución:
Código PHP:
function decode_utf8($str){
$str = str_replace("_", " ", $str);
$err = "(=\?.{10,13}q\?_?|\?\=)";
$pat = "/=([0-9A-F]{2})/";
$cha = "'.chr(hexdec(";
$str = eregi_replace($err,"",$str);
eval("\$str='".preg_replace($pat,$cha."'$1')).'",$str)."';");
return $str;
}