Page 1 of 1

mal wieder: Umlaute wenn 'Einfügen' benutzt

PostPosted: 06. May 2008 11:41
by Lengen1971
Hi,

grad verzweifel ich an folgendem Problem:
phpMyAdmin, DB angelegt, zwei Tabellen angelegt. Alles UTF-8.

Daten, die vom PHP-Client über ein Formular kommen werden die Umlaute richtig gepeichert und auch nachher wieder als Umlaute an die PHP-Seite geschickt.

Umlaute, die ich über das 'Einfügen'-Formular von PMA eingebe, werden zwar richtig in PMA angezeigt, sind aber in der PHP-Seite ein Fragezeichen.

Die PHP-Seiten sind auch alle UTF-8 kodiert, der Browser steht auf UTF-8.

Verwirrend...
Danke für Hinweise.
Gruß
Michael

PostPosted: 06. May 2008 12:21
by Lengen1971
Hi, hab nochmal einen Test gemacht und Daten über ein eigenes Formular einfügen lassen in die gleiche Tabelle, dann geht´s.

Nur wenn ich das Formular von PMA verwende, dann geht´s NICHT. Die Umlaute sind dann Fragezeichen.

(PMA und meine php-Seite laufen am gleichen Webserver, benutzen also den gleichen PHP-Client für den Zugriff auf mySQL)


Ärgerlich, ich würde das gern hin und wieder benutzen. Weiß keiner, woran das liegen könnte?

Gruß
Michael

PostPosted: 06. May 2008 17:50
by sari42
alle tabellenspalten müssen auf "UTF8" eingestellt sein, in deinen scripts sofort nach jedem connect "set names UTF8" ausführen (oder character_set_connection in my.cnf ändern). siehe http://dev.mysql.com/doc/refman/5.1/de/ ... ction.html

PostPosted: 07. May 2008 09:10
by Lengen1971
Hallo,

danke für den Tip, das mit SET NAMES kenn ich schon. Da ändert sich aber gar nichts. MEIN Script funktioniert ja einwandfrei, wenn die Daten auch von meinem Script geschrieben wurden.

Die Daten, die ich direkt in PMA eingebe, die werden als Fragezeichen dargestellt. Aber wiederum nur in meiner Seite, in PMA paßt´s komischerweise. Irgendwo auf dem Weg von Mysql über PHP zu meiner Seite geht die Kodierung verloren.

Kennt jemand ein gutes Wiki, in dem die ganze charset-Geschichte von MySQL mal verständlich erklärt wird? (nicht die doc von mysql, die hab ich schon etliche Male durch).

- Wie z. B. sollte man seine PHP-Dateien kodieren?
- Ist es überhaupt sinnvoll die DB in UTF-8 anzulegen?

Viele solcher Fragen.

EDIT
der Befehl SET NAMES 'utf8' hat funktioniert. Alle Tabellen und Spalten müssen aber uft-8 kodiert sein, klar.

Der Eintrag:
character-set-connection=uft8
in der my.ini unter [client] hat den Erfolg nicht gebracht.

EDIT:
dieser Eintrag erzeugt einen Fehler, wenn man mysqlshow.exe aufruft: unknown Variable