Moin!
Hier ist der der relevante Teil der phpmyadmin config:
Da sind etliche Zeichensatzangaben mit ISO-8859-1. Die solltest du mindestens schonmal durch "UTF-8" ersetzen.
Wichtig ist eines: PHPMyAdmin muß UTF-8-codierte Formulare erhalten (und darf dann daran auch nichts mehr rumcodieren, sondern soll die Texte 1:1 in die DB schieben).
Deshalb prüfe, welcher Zeichensatz in der Formularseite verwendet wird, in die du deine Texte schreibst. Entscheidend ist:
1. Die Angabe accept-charset im <form>
2. Die Angabe content-type - Subangabe "charset" - im HTTP-Header (Browser befragen, Opera und Mozilla zeigen sowas als Seiteninfo an).
3. Die Meta-Angabe zu content-type im HTML-Quelltext.
Wenn da irgendwo ISO auftaucht, ist das schlecht. Dein Server kann auch dafür verantwortlich sein.
Der Browser sucht sich aus den obigen drei Angaben die zum Formularversand zu verwendende heraus. Ist accept-charset angegeben, wird dieser Zeichensatz (meistens - je nach Browser) verwendet, ansonsten der Charset der Seite, wobei die HTTP-Angabe mehr Gewicht hat als die Meta-Angabe in HTML.
Wenn alle drei Angaben "UTF-8" fordern/angeben, bist du von diesem Aspekt her auf der sicheren Seite. Wenn nicht, ist das dein erster Ansatzpunkt.
Und was ist dann mit folgendem Artikel ?
http://climbtothestars.org/archives/2004/07/18/converting-mysql-database-contents-to-utf-8/
Der beschriebene Fehler ist ursächlich in einer falschen Encoding-Angabe bei der Seitenauslieferung zu suchen. Die Seiten wurden im HTTP-Header als "ISO-8859-1" gekennzeichnet, dementsprechend wurden alle Formulare auch so zurückgeschickt (wenn accept-charset im <form> nicht angegeben wird). Wie ich sicherlich schon ausführlich beschrieben habe, kann das Verhalten der Browser dann absolut nicht eindeutig vorausgesagt werden, es ist alles möglich.
Mit einer "Umstellung der DB auf UTF-8" hat das absolut nichts zu tun. Es ist eher derselbe Fehler, den du mit deinem PHPMyAdmin hast.
- Sven Rautenberg