Denni: UTF-8 mit mysql richtig nutzen

Guten Abend,

ich habe ein Problem und zwar will meine DB (mysql 5) meine utf-8 daten nicht annehmen. Beispiel:

wenn ich folgendes vesuche über ein formular einzugeben:

(komische asiatische schriftzeichen, die ich leider nicht in diesem forum posten kann)

landet das hier in der DB:

§ÙÙØØ§ÙÙ©ÙÙŠ

Wie man nur unschwer erkennen kann, ist das nicht das gleiche! auch wenn ihr es nun leider nicht seht...

ok. Fehleranalyse...

Die Daten, womit das formular verarbeitet werden, sind als UTF-8 (ohne BOM) abgespeichert der richtige <meta> tag im <head> teil ist angegeben, sowie die passende header(""); angabe auf seiten des php... die php.ini hat als default zeichensatz auch utf-8 bekommen die tabellen der DB stehen auch auf: "utf8_general_ci"

ich hoffe das mir nun jemand sagen kann wodran das ganze noch liegen könnte. ich freue mich auf jede antwort die mich weiter bringt.

--
lg euer denni
  1. echo $begrüßung;

    (komische asiatische schriftzeichen, die ich leider nicht in diesem forum posten kann)

    Das halte ich für ein Gerücht, denn dieses Forum verwendet UTF-8 als Zeichenkodierung und sollte damit keine Probleme haben.

    Die Daten, womit das formular verarbeitet werden, sind als UTF-8 (ohne BOM) abgespeichert der richtige <meta> tag im <head> teil ist angegeben, sowie die passende header(""); angabe auf seiten des php...

    die php.ini hat als default zeichensatz auch utf-8 bekommen

    Diese Einstellung bringt nichts, was du nicht auch schon mit der charset-Angabe im Content-Type-Header mittels header() gesetzt hast. Sie bewirkt _nicht_, dass PHP nun in einen UTF-8-Modus umschaltet. Erst ab Version 6 wird PHP mit Mehrbyte-Kodierungen wie UTF-8 richtig umgehen können.

    die tabellen der DB stehen auch auf: "utf8_general_ci"

    Wie sieht es mit den relevanten Feldern aus? Die Einstellung der Tabelle allein nützt dir für deine Feld-Daten recht wenig.

    Welche Kodierung soll auf der Verbindung zwischen MySQL und dem Client (in dem Fall PHP) verwendet werden? Unterscheidet sich die Default-Zeichenkodierung des Servers (character-set-server) von dieser gewünschten bzw. vom Client verwendeten Kodierung, kann das nichts Gescheites werden. Gib die von dir verwendete Kodierung direkt nach dem Verbindungsaufbau z.B. mittels des Statements
      SET NAMES utf8
    dem Server bekannt. Ansonsten wäre die Lektüre des Kapitels Character Set Support eine lohnenswerte Investition.

    echo "$verabschiedung $name";