Felix Riesterer: Umlaute nach Serverumzug mit höherer PHP-Version verschwunden

Beitrag lesen

problematische Seite

Liebe Alice,

Auf diesen sind nach dem Wechsel sämtliche Umlaute mit � ersetzt worden.

ein Enkodierungsproblem, wie schon vom Hoster richtig erkannt.

<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title>

Aha! Im Content-Type wird ISO-8859-1 als Enkodierung angegeben. Wenn man eine so gespeicherte Datei als UTF-8 interpretiert, und das tut Dein Browser in diesem Moment, dann "verschwinden" die deutschen Sonderzeichen und werden zu diesen Fragezeichen.

Lösung? Das ist jetzt ein Fall von "kommt darauf an". Folgende Dinge müssen zusammen passen, damit im Browser alles richtig angezeigt wird:

  1. Die HTML-Dateien müssen in der richtigen Kodierung gespeichert sein.
  2. Der Server muss den Inhalt als in dieser Kodierung vorhandenen Content ausgeben ("überschreibt" das, was in Deiner <meta>-Angabe als ISO-8859-1 steht).

Es ist heute nicht mehr sinnvoll eine von Unicode abweichende Kodierung zu verwenden. Stelle alles (!) auf UTF-8 um, dann sollte es keine Probleme mehr geben.

Übrigens:

<html style="direction: ltr;" template="true" lang="Deutsch"><head>

Was soll lang="Deutsch" sein? Als Inhalt des lang-Attributes notiert man in einer dieser ISO-Normen, also in Deinem Fall "de" (generell Deutsch) oder "de-DE" (Deutsch, Variante in Deutschland) bzw. "de-AT" (Deutsch, österreichische Variante).

Liebe Grüße,

Felix Riesterer.