Jetzt Mitglied werden

Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.

Login für Mitglieder

Forum - Entwicklung

Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.

Über Webmasterpro.de

Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.

Datenbanken (SQL) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.


klix08
Beiträge: 39

PN schreiben
Profil ansehen
User ist offline

Zeichenkodierung und Umlaute

Link zur Antwort auf "Zeichenkodierung und Umlaute" von klix08 klix08, am Dienstag den 11.08.2009 um 14:37:04

Hallo,

ich habe ein massives Problem mit den Umlauten in meiner DB bzw. in der Ausgabe.

Ein Formular schickt von Seitenbesuchern eingegebene Daten an meine DB (MySQL bei 1&1) und ich rufe diese in einem Backend ab.

Habe jetzt einiges versucht, aber komme immer wieder zu dem Punkt, dass es mit einem Browser funktioniert, mit dem anderen nicht !! (FF3 vs. IE bzw. FF2).

Meine bisherigen Versuche lagen darin,

1. mit dem Doctype bzw. charset des abschickenden Formulars sowie der anzeigenden Seite im Backend herumzuspielen

2. mit der Kodierung in der DB herumzuspielen (phpMyAdmin)

3. mittels SQL mit SET Names und/oder SET CHARACTER SET herumzuexperimentieren (siehe hier: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html).

Teilweise stimmten die Einträge in phpMyAdmin, aber nicht im Backend, teilweise stimmten sie in beiden Darstellungen nicht, oder es wurden nur ??? übertragen und schließlich wurde auch mal ein leerer Datensatz gespeichert!!!

Die besten Lösungen waren so, dass ich eine Lösung hatte, die funktioniert, wenn ich das Formular mit FF2 oder IE(habe 8) abschicke - aber nicht mit FF3! Oder eben umgekehrt. Werde noch wahnsinnig.;-( Vor allem ist das Testen mit mehreren systemen nervig (und auch fehleranfällig) - es kann doch nicht sein, dass das browserspezifisch ist! Oder ignoriert/korrigiert der FF3 irgendwas, was die anderen nicht machen?

Habt Ihr Tipps?


Max B
Beiträge: 220

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von Max B Max B, am Mittwoch den 12.08.2009 um 08:45:45

Welchen Zeichensatz willst du denn verwenden?

Wenn UTF-8, hier ein paar Tipps:

  • Alles muss in UTF-8 vorliegen! Auch die Dateien selber müssen in UTF-8 gespeichert werden (kannst du im "Speichern unter"-Dialog deines Texteditors vermutlich einstellen - ansonsten werden Umlaute im Code (sofern da welche sind) zerschossen
  • Die gewohnten String-Operationen von PHP können nicht mit UTF-8 umgehen. Nutze hierfür die Pendants aus dem Multibyte String Funktionen-Paket
  • Die DB muss komplett auf UTF-8 laufen:
    • Die Tabellen und Felder müssen auf UTF-8 gestellt werden
    • Die Connection selber muss auch auf UTF-8 gestellt werden! Ich mach immer SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'
  • Die Ausgabe sollte auch irgendwie auf UTF-8 hinweisen. Entweder per Header der gesendet wird oder per meta-tag oder so

Ich würde mal in Ruhe mit neuen Daten testen bis alles vernünftig ist. Danach dann deine bisherigen Daten (sofern die wichtig sind) umstellen/konvertieren. Das könnte aber echt haarig werden...


klix08
Beiträge: 39

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von klix08 klix08, am Mittwoch den 12.08.2009 um 12:27:35

Hab es gestern Nacht durch striktes Überprüfen, ob alles utf-8 ist, noch so hingekriegt, dass die Ausgabe nun korrekt ist (mit allen Browsern). In PHPMyAdmin sieht es dafür aber kryptisch aus. Ich hatte das SET Names / CHARACTER letztendlich weggelassen und war/bin froh, dass es jetzt erstmal so funktioniert, aber werde noch weiter testen. Danke für die Hinweise und den link (multistring).

Das ist echt so verflixt mit der Codierung, hatte schon öfter Probleme und hab mir jedesmal vorgenommen, das nächste Mal beim lokalen Testen darauf zu achten, von Anfang an gleiche Datenbank-Bedingungen einzustellen (soweit das möglich ist) - und vergess es dann doch wieder!


klix08
Beiträge: 39

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von klix08 klix08, am Mittwoch den 12.08.2009 um 19:11:47

Super! Deine Lösung für die MySQL-Verbindung (SET...) funktioniert jetzt astrein! Die alten Daten sind futsch (waren ja bisher zum Glück nur tests), aber neuen werden überall exakt interpretiert!!

Danke!


Max B
Beiträge: 220

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von Max B Max B, am Freitag den 14.08.2009 um 16:22:23

Auch bei phpmyadmin? Wenn das da noch zerschossen ist, ist immer noch was im argen...


klix08
Beiträge: 39

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von klix08 klix08, am Freitag den 14.08.2009 um 16:43:31

Ja, auch da! Der Rest war ja vorher schon ok.

Oder meinst Du jetzt die alten Daten? Die hab ich ja unter anderen Bedingungen geschrieben - (hab ich auch mittlerweile gelöscht)...


Max B
Beiträge: 220

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von Max B Max B, am Montag den 17.08.2009 um 09:19:46

Nee das meinte ich, passt :)


bazille
Beiträge: 13

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Zeichenkodierung und Umlaute" von bazille bazille, am Montag den 01.02.2010 um 11:23:44

Hallo miteinander,

Gerne würde ich an diesen Thread anknüpfen, da sich meine Problematik auch bei den Umlauten mit MySQL befindet.

Grundsätzlich ist alles auf UTF-8 eingestelllt: Browser, Ausgabe in HTML, MySQL.

MySQL verwednet überall utf8_general_ci.

Problem: Im Browser werden die Umlaute richtig dargestellt, in der MySQL Datenbank werden sie hieroglyphenartig dargestellt (ä => ä, ö =>ö, ü => ü, etc).

Die ganze Verarbeitung geschieht in PHP, wobei ich nicht von String-Funktionen Gebrauch mache (welche nicht mit UTF8 auskämen).

Wo ligt hier das Problem? Den Code mit SET... von Max B habe ich schon probiert, ändert jedoch nichts :-(

Vielen Dank für Tipps,

Alex