Tach!
Sofern die Datenbankabfrage überhaupt etwas liefert, könnte das am htmlspecialchars() liegen. Das findet keine gültige Kodierungsangabe.
Hab ich versucht nachzustellen.
ini_set('default_charset', 'foo');
echo htmlspecialchars('<föo>');
ergibt diese Warnung:
Warning: htmlspecialchars(): charset `foo' not supported, assuming utf-8
nebst der problemlosen Ausgabe - wenn ich UTF-8 als Kodierung der Datei habe. Wenn sie ISO-8859-1 ist und sich Nicht-ASCII-Zeichen darin befinden, dann unterbleibt die Ausgabe geräuschlos. Das ist wohl der Fall, den du meinst, also eine ungültige UTF-8-Sequenz.
Entweder Du benutzt das zweite und dritte Funktionsargument von htmlspecialchars() dafür, oder Du setzt die Kodierung skriptglobal mit der Funktion ini_set() mit default_charset.
Ich würde da gar nichts weiter angeben und stattdessen dafür sorgen, dass UTF-8 generell korrekt verwendet wird, dann gibts da auch kein Problem. Und zwar generell nicht, nicht nur an dieser Stelle nicht. Es hilft ja nicht viel, nur dort etwas zu korrigieren, das an vielen anderen Stelle weiterhin kaputt ist.
dedlfix.