Mathias: Umlaute & Zeichensatz

Hallo,

ich habe leider mal wieder ein Problem mit falsch dargestellten Umlauten und dem richtigem Zeichensatz:

Ä Ü und Ö
ergeben
Ä Ü Ã

nachdem ich die Daten per Fromular an den Server geschickt habe.
Das heisst, in der Datenbank werden Sie so reingeschrieben & in der Mail stehen die auch so drin.

Auf der HTML Seite gebe ich mittlerweile das Tag
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
aus,
der Apache sendet jetzt
AddDefaultCharset ISO-8859-1
und in der php.ini steht auch
default_charset = "iso-8859-1"

Trotzdem werden die vom Formular verarbeiteten Sonderzeichen so anders dargestellt.

Bestimmt weiß hier jemand direkt, woran das liegen kann, ich würde mich auf jeden Fall über Antworten sehr freuen.

merci & gruß,
m.

  1. echo $begrüßung;

    Ä Ü und Ö
    ergeben
    Ä Ü Ã

    Das heißt also, dass die Zeichen UTF-8-kodiert sind, das anzeigende Programm sie aber als Windows-1252 interpretiert.

    nachdem ich die Daten per Fromular an den Server geschickt habe.
    Das heisst, in der Datenbank werden Sie so reingeschrieben & in der Mail stehen die auch so drin.

    Definiere "so". Meinst du die obere Form oder die untere Form? Bist du sicher, dass sie "so" drinstehen, oder werden sie nur von Datenbank und Mail richtig interpretiert, so dass du sie richtig angezeigt bekommst?

    Auf der HTML Seite gebe ich mittlerweile das Tag
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    aus,
    der Apache sendet jetzt
    AddDefaultCharset ISO-8859-1
    und in der php.ini steht auch
    default_charset = "iso-8859-1"

    Diese Konfigurationsangaben sind nicht verkehrt, aber interessanter wären die Werte, die tatsächlich beim Browser ankommen. Schau doch bitte mit einem HTTP-Header-anzeigenden Programm/Plugin nach, was der Browser erhält. Für Firefox wäre beispielsweise die livehttpheaders-Extension geeignet.

    Trotzdem werden die vom Formular verarbeiteten Sonderzeichen so anders dargestellt.

    An welcher Stelle werden sie "so anders" dargestellt? Sind schon die vom Browser kommenden Daten UTF-8-kodiert? Dann wäre die Frage, warum macht der Browser das? Hat er vielleicht noch ein accept-charset-Attribut, das ihn dazu veranlasst? Spielt AJAX oder eine andere XML-Datenübertragung in der Runde mit?

    Bestimmt weiß hier jemand direkt, woran das liegen kann,

    Es spielen eine ganze Reihe Komponenten bei der Datenübertragung und -verarbeitung mit. Da kann man als Außenstehender nur raten. Nur genaue Nachforschungen, welche der beteiligten Komponenten für den Fehler verantwortlich ist, verhelfen dir zum Wissen.

    echo "$verabschiedung $name";