Moin!
<form action="...php" method="post" accept-charset="ISO-8859-1, ISO-8859-2, UTF-8">
Dieses accept-charset ist ULTRABÖSE! Bitte schmeiße es raus, verwende AUSSCHLIESSLICH UTF-8!
Es erlaubt dem Browser, die eingegebenen Zeichen in einer der drei Codierungen zu senden. Leider sendet er aber nicht mit, welche Codierung er gewählt hat, d.h. du kannst auf dem Server nicht mehr feststellen, ob da jetzt jemand den eher sinnlosen Text "ä" eingegeben und der Browser ISO-8859-1 gesendet hat, oder ob stattdessen eher "ä" eingegeben und der Browser UTF-8 gesendet hat. In einem Text, in dem es um die UTF-8-Darstellung des ä gehen würde, würde auch mit Logik nicht erklärbar sein, ob "ä" jetzt so gemeint ist, oder ein "ä" sein soll.
Manche Browser sind auch so nett, und wandeln alle nicht in der gewählten Codierung darstellbare Zeichen in numerische Zeichenreferenzen um. Das macht die Sache noch schlimmer: Das russische Щ erscheint in ISO-8859-1 als Text "Щ" - und man kann nicht erkennen, ob der Benutzer jetzt das Щ eingegeben hat, oder den Text "Щ" - das &-Zeichen wird nämlich nicht codiert, weder als &, noch als &.
Ich vermute, dass du genau in so eine Falle getappt bist, und dein Browser in irgendeiner Weise den Zeichensatz mißverstanden hat.
Oder die angezeigte deutsche Seite nutzt kein UTF-8 (wie erwähnt: Immer im HTTP-Header und Meta-Tag identische Angaben machen lassen, wobei das Meta-Tag kein Problem ist, wichtiger aber ist der HTTP-Header! Unbedingt nachprüfen im Browser, was der darüber sagt.)
- Sven Rautenberg
My sssignature, my preciousssss!