Hallo greg,
a) alle Named Entities in UTF-8-Entities wandeln
http://de3.php.net/html_entity_decode
$text = html_entity_decode ($text, ENT_COMPAT, 'UTF-8');
b) Alleinstehende '&' in die entsprechende Entity wandeln
$text = str_replace ('&', '&', $text);
c) Alle non-ASCII-Zeichen (ISO-8859-15) ebenfalls nach UTF-8 wandeln
(dies solltest Du übrigens als erstes tun, bevor Du die anderen Dinge machst, denn falls durch die Named Entities bereits UTF8-Daten vorhanden sind, werden diese verhunzt)
http://de3.php.net/utf8_encode
$text = utf8_encode ($text);
Viele Grüße,
Christian