Tach!
Hier habe ich es so gemacht, wie Du vorschlägst - zufällig ist es auch wieder ein Text mit den ominösen Anführungszeichen:
Die+Stadtverwaltung+hat+die+Baugenehmigung+f%C3%83%C2%BCr+das+geplante+Gro%C3%83%C2%9Fbordell+im+V%C3%83%C2%B6lklinger+Stadtteil+Fenne+erteilt.
Da sieht man, dass da 4 Bytes für Umlaute verwendet wurden. Da ist also schon eine doppelte UTF-8-Kodierung in den Daten. Das kann passieren, wenn man UTF-8 mit utf8encode() behandelt.
Ausgegeben wird das bei mir mit utf8_decode:
Das umstrittene Bordell soll in der ehemaligen ?Glashüttenhalle??entstehen.
Ja, dazu die Daten sehen so aus: > Das+umstrittene+Bordell+soll+in+der+ehemaligen+%E2%80%9EGlash%C3%83%C2%BCttenhalle%E2%80%9C%E2%80%82entstehen
Das erste Anführungszeichen ist dieses da, Bytefolge: E2 80 9E. Das kann utf8decode() nicht in ISO-8859-1 umkodieren, weil es dieses Zeichen in der Kodierung nicht gibt. Resultat ist dann ein Fragezeichen.
Bemerkenswert ist, dass das Anführungszeichen einfach UTF-8-kodiert ist, während die Umlaute zweifach kodiert sind. Aber war es nicht so, dass Umlaute direkt im Code der Seite standen und die Anführungszeichen als Entity? Da hat jemand die Entitys weginterpretiert (die DOM-Funktionen vermutlich). Und davor fand vermutlich eine überflüssige UTF-8-Kodierung von bereits UTF-8-Daten statt.
dedlfix.