Morgen,
Es gibt einen fast unbekannten 4. Parameter bei htmlentities(): Double-Encoding. Wird der Parameter auf false gesetzt, dann werden bereits maskierte Zeichen nicht erneut maskiert.
htmlentities($str, ENT_QUOTES, "UTF-8", false);Das sollte dein Problem lösen. Allerdings leuchtet mir nicht...