Du bist nicht angemeldet (anmelden)
Seite 1
Erledigt: Die Sache mit den Umlauten
Ist es möglich, dass ich Text komplett mit Umlauten in der MySQL-DB (UTF-8) abspeichere? Denn im Moment wird zB aus einem ö ö.
Wenn ja, wo müssen welche charsets gesetzt werden?
Wenn ja, wo müssen welche charsets gesetzt werden?
Klar ist es möglich, aber es gibt sehr viele Fehlerquellen und jede menge Möglichkeiten, sich in den Wahnsinn treiben zu lassen. Was mir bisther immer geholfen hat war, folgendes abzuchecken:
- Woher kommt der Text? Inputfeld? PHP selbst? externe Datei?
- Ist sichergestellt, dass er auch wirklich UTF8-formatiert ist?
- ist sichergestellt dass er aus der Datenbank dann wieder als UTF8 an den Browser gesendet wird?
- ist sichergestellt, dass die PHP-Verbindung zur Datenbank beim Schreiben und auch beim Auslesen auf UTF8 gesetzt ist?
- Und ist nicht nur die Datenbank, sondern auch die Spalte selbst auf UTF8 gesetzt?
viel spaß - umlautprobleme sind fürchterlich.
- Woher kommt der Text? Inputfeld? PHP selbst? externe Datei?
- Ist sichergestellt, dass er auch wirklich UTF8-formatiert ist?
- ist sichergestellt dass er aus der Datenbank dann wieder als UTF8 an den Browser gesendet wird?
- ist sichergestellt, dass die PHP-Verbindung zur Datenbank beim Schreiben und auch beim Auslesen auf UTF8 gesetzt ist?
- Und ist nicht nur die Datenbank, sondern auch die Spalte selbst auf UTF8 gesetzt?
viel spaß - umlautprobleme sind fürchterlich.
- Also Text kommt von <textarea>
- Die php Datei hat das im Header: <meta http-equiv=“Content-type“ content=“text/html; charset=utf-8“ />
Wie überprüfe ich die restlichen Punkte?
- Die php Datei hat das im Header: <meta http-equiv=“Content-type“ content=“text/html; charset=utf-8“ />
Wie überprüfe ich die restlichen Punkte?
Editiert: 23.11.09, 20:21 Uhr
Jetzt bin ich total verwirrt, also:- User gibt Text auf Seite mit <textarea> ein
- Via JS/JQuery/AJAX wird ein PHP-Skript aufgerufen, was die Daten in eine MySQL-DB speichert
- Die Datenbank an sich und alle Spalten sind utf8_general_ci codiert
- trotzdem steht in der DB zB statt ö ö
(Alle Dateien sind UTF-8 codiert.)
Das seltsamste ist, dass die Umlaute trotzdem korrekt angezeigt werden (vorher werden sie mit diesem Skript durch html-entities ersetzt:
function umlaute($string){$upas = Array("ä" => "ä", "ü" => "ü", "ö" => "ö", "Ä" => "Ä", "Ü" => "Ü", "Ö" => "&Öuml;");return strtr($string, $upas);}
Wie kann ich verhindern, dass die Umlaute falsch in der Datenbank gespeichert werden?
falls es mal jemand braucht: ich hab mich mal mit verschiedenen tabellen in verschiedenen kollationen rumschlagen und cleanen müssen ... sind zwar einige rechtschreibfehler drin, aber was solls:
http://www.polycoder.de/2009/06/probleme...nd-latin1/
http://www.polycoder.de/2009/06/probleme...nd-latin1/
