Como es bien sabido, hay incompatibilidad entre los acentos de MySQL y PHP. Si no puedes entrar a cambiar los parametros de las tablas y del PHP, una forma directa es por medio de la siguiente función:
function ponAcentos($str) {
$html_entities = array (
"•" => "•", #ampersand
"é" => "é", #latin small letter a
"É" => "É",
"á" => "á" , #latin capital letter A
"Ã" => "Á",
"ñ" => "ñ" , #latin capital letter E
"Ñ" => "Ñ",
"Ã" => "í" , #latin small letter e
"Ã " => "Í",
"ó" => "ó" , #latin small letter u
"Ó" => "Ó",
"–" => "–" , #latin capital letter U
"ü" => "ü", #latin small letter u
"Ú" => "Ú",
"ú" => "ú",
"¡" => "¡",
"¿" => "¿",
"“" => "«",
"â€" => "»"
);
foreach ($html_entities as $key => $value) {
$str = str_replace($key, $value, $str);
}
return $str;
}