Vergleich: Aus PHP 5.4.7 wurde PHP 7.4.5, aus Apache 2.4.3 wurde Apache 2.4.43.
Im Prinzip funktioniert das neue gut, aber ein Haar hab ich in der Suppe doch gefunden. Ich zeig's an einem Beispiel.
Ich hab 2 Dateien angelegt, die eine heisst uml.html, die andere heisst uml.php. Der Inhalt ist aber bei beiden derselbe, nämlich
- Code: Select all
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body style="font-family:Verdana,Helvetica,Arial;">
<h1>Bäh Bäh</h1>
</body>
</html>
Wenn ich uml.html mit dem Browser anschaue, sieht es bei beiden Systemen gut aus.
Wenn ich uml.php mit dem Browser auf dem alten xampp anschaue, sieht es gut aus. Wenn ich es auf dem neuen anschaue, wird der Umlaut nicht richtig dargestellt.
Genaueres Hinsehen zeigt folgenden Unterschied im HTTP-Header:
alt: 'Content-Type: text/html' bei beiden Dateien (HTML und PHP)
neu: 'Content-Type: text/html' für HTML, 'Content-Type: text/html; charset=UTF-8' für PHP. Das UTF-8 kommt wirklich von PHP. Mit .htaccess krieg ich das nicht in den Griff.
Wenn ich in der uml.php header() verwende, um den charset zu setzen, kommt es auch im neuen Setup gut. Also im Prinzip kein unüberwindliches Problem.
Aber ich frage mich nun: Warum verhält sich PHP 7 in dieser Sache anders als PHP 5?
Gibt es irgendwo einen Konfig-Parameter, wo ich den charset-Default für den HTTP-Header setzen kann?
Bin gespannt, ob mir jemand etwas darüber sagen kann, nachdem Google mir nicht weitergeholfen hat.