Hallo und guten Morgen,
header('Content-Type: text/html; CharSet="utf-8">');
Was mich bei deinen Beispielen kirre gemacht hat, ist die obige Zeile. Die wirkt, als hättest du sie falsch markiert aus einem HTML-Dokument entliehen. Die hier passt (Korrekturen: Anführungszeichen, Doppelpunkt vs. Gleichheitszeichen).
header('Content-Type: text/html; charset: UTF-8');
Richtig ist:
header('Content-Type: text/html; CharSet="utf-8"');
oder
header('Content-Type: text/html; CharSet=utf-8');
oder auch
header('Content-Type: text/html; charset=UTF-8');
aber keinesfalls mit Doppelpunkt bei der Angabe des CharSet.
Vielleicht liest ja ein RFC-Kundiger mit, der die genaue Stelle kennt?
Grüße
TS