Selber Tach!
Ich vermute, dass es mit dem Parameter Charset der Funktion
htmlspecialchars
zu tun hat. Unter PHP 5.4 und 5.5 wird standardmäßig UTF-8 verwendet, frühere PHP-Versionen verwenden ISO-8859-1, ab PHP 5.6 wird standardmäßig die mit default_charset ermittelte Kodierung verwendet.
und die kann man mandativ machen:
php_admin_value default_charset iso-8859-1
an passender Stelle in der Apache-Konfiguration untergebracht und es lässt sich mit PHP nix mehr steuern.
Außerdem könnte auch ein
AddDefaultCharset ON
dafür sorgen, dass der Apache (2.2) nur die Default-Einstellung ISO-8859-1 benutzt
http://httpd.apache.org/docs/2.2/de/mod/core.html#AddDefaultCharset
Bevor Ihr weiter Rätselraten spieolt, sollte man erst einmal nachgucken, was wo eingestellt ist und was tatsächlich beim Client ankommt. Eine Änderung nur per header() in PHP ist jedenfalls nicht immer möglich.
Grüße TS