qhil
Captain
- Registriert
- Apr. 2011
- Beiträge
- 3.119
Moin moin,
ich habe ein kleines Problem:
Über ein HTML / PHP Formular speichere ich Daten in meiner MySQL Datenbank und lese sie später auch wieder aus. Nun habe ich das Problem, dass innerhalb der Datenbank die Umlaute nicht korrekt abgelegt werden. Aus "ö" wird "ö", aus "ü" wird "ü", usw.
Wenn ich die Daten auslese und anzeigen lasse, dann werden dennoch "ö" und "ü" angezeigt - also so wie es sein soll.
Alle meine Files sind als UTF-8 (ohne BOM) kodiert, Zeichensatz / Kollation der MySQL-Verbindung in der DB steht auf "utf8_unicode_ci" und der Header sieht wie folgt aus:
Wenn ich die Variablen vorher mit
überprüfe, wird mir ebenfalls UTF-8 ausgegeben. Trotzdem kommt in der Datenbank nur das oben beschriebene Zeug an.
Ich habe probiert vor dem INSERT / UPDATE
auszuführen. Damit sind die Daten dann auch korrekt in der DB. Allerdings kommen beim Auslesen nur Fragezeichen raus. Wenn ich dann aber vor den ausgelesenen Wert
schreibe, ist wieder alles richtig. Nun frage ich mich allerdings, wieso ich die ausgelesenen Daten wieder in UTF-8 kodieren muss, obwohl sie als UTF-8 in der DB gespeichert wurden? Hat jemand eine Idee, wie ich das Problem lösen kann - am besten ohne, dass ich nun vor jedem ausgelesenen Wert den eben angegebene Befehl schreibe?
Vielen Dank im Voraus,
qhil
ich habe ein kleines Problem:
Über ein HTML / PHP Formular speichere ich Daten in meiner MySQL Datenbank und lese sie später auch wieder aus. Nun habe ich das Problem, dass innerhalb der Datenbank die Umlaute nicht korrekt abgelegt werden. Aus "ö" wird "ö", aus "ü" wird "ü", usw.
Wenn ich die Daten auslese und anzeigen lasse, dann werden dennoch "ö" und "ü" angezeigt - also so wie es sein soll.
Alle meine Files sind als UTF-8 (ohne BOM) kodiert, Zeichensatz / Kollation der MySQL-Verbindung in der DB steht auf "utf8_unicode_ci" und der Header sieht wie folgt aus:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Wenn ich die Variablen vorher mit
PHP:
mb_detect_encoding($str);
Ich habe probiert vor dem INSERT / UPDATE
PHP:
mysql_query("SET NAMES 'utf8'");
PHP:
utf_encode($str);
Vielen Dank im Voraus,
qhil
Zuletzt bearbeitet: