primero que nada es mala practica guardar en la base de datos utilizando htmlentities como se le llame...
lo mejor es guardar tal cual las letras y para lograr el maximo de signos raros guardados sin tener problema recomiendo usar en la base de datos colattion unicode_ci y luego el colation de las tablas en utf8_general_ci.
eso de que tiene tu base de datos tiene mucha informacion tiene solucion:
yo en tu caso hago un back up a un archivo SQL,
lo abro con notepad++ y hago una busqueda de reemplazo:
cambiando todo los que encuentre: ó
por: ó y guala.
hacer el mismo procedimiento con áéíóúñ y símbolos raros
lo que si recomiendo es utilizar el zanitizador de php
Código PHP:
Ver originalfunction sanitize($input) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}
else {
}
$input = cleanInput($input);
}
return $output;
}
y si tienes problemas aun con la impresion por pantalla de caracteres especiales te sugiero que sigas las indicaciones de este otro post:
link