PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP/MySQL] Umlaute richtig in DB speichern


Blade II
2007-05-05, 13:36:12
Hey ho

Ein wohl recht bekanntes Thema:
Man schreibt ein Formularscript, speichert die Daten in eine MySQL Datenbank und die Umlaute werden nicht richtig dar gestellt.
Aus
ä wird ä
ü wird ü
ö wird ö
usw...

Eine Lösungsmöglichkeit wäre http://de.php.net/favicon.ico htmlentities (http://de.php.net/manual/de/function.htmlentities.php) zu benutzen, welches aus
ä -> ä
ü -> ü
ö -> ö
etc., macht.

Zudem habe ich verschiedene Lösungsansätze dieses Tutorials ausprobiert:
Zeichensatzkodierung bei Webapplikationen (http://www.uibk.ac.at/zid/systeme/webserver/webapp/postgres_zeichensatzkodierung.sdbk#id278)
Leider auch ohne Erfolg.

Was muss ich tun, damit ich die Umlaute korrekt in die MySQL DB speichern kann, ohne das diese durch irgendwelche Codierungen oder HTML Codes ersetzt werden? Könnte es eventuell auch mit den Kollation der Datenbank und einzelnen Feldern innerhalb der Tabelle zu tuen haben?

MfG demon

darph
2007-05-05, 13:59:06
In welchem Format ist denn dein Script gespeichert? Und welches Format gibt der Header deines Dokuments an? Und zu guter letzt, als was speichert die Datenbank das?

Sieht schwer danach aus, als sei mindestens eine Komponente in Unicode und die andere in Western-European oder so.

Am Einfachsten wäre es, wenn du einfach alles in UTF-8 speicherst.

BoneDaddy
2007-05-05, 15:15:16
Umlaute kannst du doch ganz normal in die DB schreiben. Nur bei der Ausgabe musst du aufpassen, wie du die Zeichen codierst. MySQL ist ja nicht nur dafür da, Sachen als HTML Code zu speichern.

Coda
2007-05-05, 16:30:05
Wie Darph schon sagte: Überall UTF8 benützen. Das ist die einfachste Lösung.

The_Invisible
2007-05-06, 00:16:24
ansonsten vor der select abfrage ein "SET NAMES 'charset_name'" an die datenbank senden was allerdings nur ne notlösung darstellt

mfg