hab so ein ähnliches problem auch gehabt, folgende lösung
ein php skript das dir alle datensätze rausholt, und ein
html_entities auf alle werte macht.
danach lese ich die werte wieder aus und führe ein str_replace durch:
$search = array("ä", "ö", "Ü","ü","Ä",">","<",""","Ö","ß");
$replace = array("ä","ö","Ü","ü","Ä",">","<",""","Ö","ß");
$neuer_wert = str_replace($search, $replace, $alter_wert);
und dann wieder in die datenbank einspielt.
danach werden die werte wieder ausgelesen