se fai una select sul DB la legge corretta (AKA il DB ha charset UTF-8 o simile)?
Se si, puoi semplicemente fare htmlentities($str, ENT_QUOTES, 'UTF-8');
dove $str è la stringa