Michael: Umlaute in MYSQL-Datenbank

Beitrag lesen

Hallo zusammen,

ich habe ein Problem mit dem Schreiben von Umlauten in eine MYSQL-Datenbank: In einem Webformular gebe ich z.B. ein "ä" ein. Dieses wird in der MYSQL-Datenbank als "ä" gespeichert. Wenn ich vor Ausführen der INSERT-Anweisung den ins Formular eingegebenen Buchstaben mit utf8_decode konvertiere, wird korrekt als "ä" gespeichert.

Eine solche Konvertierung sollte aber gar nicht nötig sein, denn sowohl Formularseitig als auch Datenbankseitig scheint alles auf "utf8" eingestellt (siehe unten).

Hat jemand eine Idee, warum hier trotzdem eine Konvertierung notwendig ist, bzw. wie ich diese unschöne Konvertierung vermeiden kann?

Gibt es möglicherweise serverseitige Einstellungen, die meine Angaben übersteuert haben?

Grüße

Michael

Die absendende Website hat folgende Angabe im Kopfbereich:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

Das Formular zum Erfassen der Daten hat folgende Angaben:
<form id="erfassungsformular" name="erfassungsformular" action="erfassung.htm" accept-charset="UTF-8" method="post">

Die Verbindung zur MYSQL-Datenbank wird wie folgt hergestellt:
$verbindung = mysqli_connect(host, user, passwd, db) or die;
mysqli_query("SET NAMES 'utf8'",$verbindung) OR print(mysqli_error());
mysqli_query("SET CHARACTER SET 'utf8'",$verbindung) OR print(mysqli_error());

Das Auslesen der Variablen in der Datenbank mit
SHOW VARIABLES LIKE "c%"
ergibt folgendes Ergebnis:

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database utf8_unicode_ci
collation_server utf8_general_ci
completion_type 0
concurrent_insert 1
connect_timeout 10