MannDerNichtKann: HTML => PHP => MYSQL Charset

Hallo Leute,

ich hab folgendes Problem:

Ich hab ein HTML Formular mit einer Textarea. In der HTML Datei ist Charset auf UTF-8 gestellt:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Das Formular ist auf UTF-8 gestellt:

accept-charset="UTF-8"

Die Spalte in MySql ist auf UTF-8 gestellt. (genau gesagt utf8_bin)

So Wenn ich nun die Daten mittel PHP in die Datenbank schreibe, dann werden die Umlaute nicht korrekt übernommen.

Aus "Öö Ää Üü" wird "Öö Ää Üü"

Ich überprüfe die Inhalte mit PHPMyAdmin und dort ist die Browser Zeichenkodierung auch auf UTF-8 gestellt.

Wo habe ich einen Denkfehler? Was mache ich falsch?
Vielen Dank für eure Hilfe!!

  1. Tach!

    Ich hab ein HTML Formular mit einer Textarea. In der HTML Datei ist Charset auf UTF-8 gestellt:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    Das ist nur die Angabe, dass das Dokument UTF-8-kodiert sei. Ist das auch wirklich so? Und liefert der Webserver den HTTP-Header namens Content-Type ohne charset-Angabe oder mit derselben? Denn die hätte Vorrang.

    Das Formular ist auf UTF-8 gestellt:
    accept-charset="UTF-8"

    Braucht man üblicherweise nicht extra anzugeben. Browser nehmen die Dokument-Angabe, ältere ignorieren diese Angabe sogar.

    Die Spalte in MySql ist auf UTF-8 gestellt. (genau gesagt utf8_bin)

    Die UTF-8-Kettenglieder haben jeweils zwei Teile. Der eine ist die Speicherung oder Verarbeitung in einem System, der andere ist die Weitergabe an das nächste System. Die Kodierung muss innerhalb eines Systems passen und sie muss dem nachfolgenden bekanntgegeben werden, wenn nicht auf irgendwelche Default-Werte vertraut werden soll.

    In deinem Fall fehlt vermutlich die Angabe auf der Verbindung zwischen MySQL und dem Client (PHP-Script).

    Wo habe ich einen Denkfehler? Was mache ich falsch?

    Nimm dies: SELFHTML-Wiki Zeichenkodierung, besonders das Kapitel zu MySQL.

    dedlfix.