dedlfix: problem mit Umlauten beim IIS

Beitrag lesen

echo $begrüßung;

im HTML soll als beispiel ein ä ausgegeben werden. aus irgendeinem grund wird aber immer ä ausgegeben?!..

Der "irgendein Grund" ist dieser: Der an den Client übertragene Text ist UTF-8-kodiert. Der Client bekommt das aber nicht oder falsch gesagt und nimmt hier an, es handele sich um eine ISO-8859-1-Kodierung. (Ohne die betreffende Seite gesehen zu haben ist das natürlich nur eine Vermutung, die auf den gegebenen Indizien beruht.) Ein UTF8-kodiertes ä (0xc3 0xa4) wird wenn es als ISO-8859-1 interpretiert wird als ä angezeigt.

Hast Du im HTML-Header das Charset definiert?

Wenn:

  • "Ja, <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> ist vorhanden"
    umschreiben auf <meta http-equiv="content-type" content="text/html; charset=UTF-8">

  • "Ja, <meta http-equiv="content-type" content="text/html; charset=UTF-8"> ist vorhanden"

  • Nein.
    Der Server (IIS) sendet eine Charset-Angabe im HTTP-Header mit, die nicht UTF-8 ist. Wenn eine Charset-Angabe im HTTP-Header vorhanden ist, wird diese verwendet und der Meta-Tag nicht weiter beachtet.

Bei "Nein" wäre dann auch noch diese Frage relevant:

Welches Charset ist unter Ansicht->Condierung im IE gesetzt? Also ohne das Du es selbst geändert hast?

Versuche mal bitte folgendes:

Setzte bitte mal am Anfang des PHP-Scriptes:
header("Content-type: text/html; charset=ISO-8859-1");

Ein header("Content-type: text/html; charset=utf-8"); sollte es schon sein.
Alternativ wäre noch die Konfiguration des IIS zu überprüfen und die Charset-Angabe zu korrigieren oder zu entfernen.

Ich vermute mal, dass im IIS mit dem Default-Charset UTF-8 konfiguriert ist und der IE dann UTF-8 dann verwendet, egal was im HTML-Header steht.

Ersetze "UTF-8" durch "ISO-8859-1" dann dürfte die Vermutung stimmen.

Ich hatte das letztens in ePages gehabt. ePages verpasst alle Dokumente mit dem Charset UTF-8. Im Dokument war im HTML-Header das Charset ISO-8859-1 definiert, den IE hat das aber nicht interessiert. Der hat sich nur für das Charset interessiert, den der Server (den ePages vorgegeben hat) gesendet hat.

siehe oben.

echo "$verabschiedung $name";