Mailinglisten-Archive |
Hi Jens, ich habe gerade einmal einen Test gemacht und kyrillische Zeichen aus der Excel-Tabelle, die Du mir und Norbert freundlicherweise per PM zugaenglich gemacht hast, in ein textarea-Feld eines eMail-Formulars kopiert und dann das Formular abgeschickt. Dabei hat sich mein Verdacht von heute Morgen erhaertet: Der Internet Explorer und Mozilla, also die Browser, haben die kyrillischen Zeichen in UTF-8-Entities umgewandelt. Beim Opera kamen hingegen auf der Sendebestaetigungsseite keine Entities, sondern nur Fragezeichen an. D.h. damit waere aus meiner Sicht schon einmal eingegrenzt, wo die Entities her kommen. Es scheint also nicht an phpMyAdmin zu liegen und eigene Formulare zu bauen, wuerde das Problem wohl ebenfalls nicht loesen. Die Frage ist nun, WANN die beiden genannten Browser die kyrillischen Zeichen in UTF-8-Entities umwandeln. Tun sie das bereits beim Einfuegen der Zeichen in das Formularfeld, oder tun sie das erst beim Abschicken? Das koennte ich allerdings erst heute Abend feststellen. Bei ersterem haetten wir u.U. leider schlechte Karten, das Problem zu loesen. Meine Vermutung ist, dass sie es erst beim Abschicken tun. Hintergrund meiner Ueberlegung: Wenn Du einen Text aus Excel kopierst und in der Zwischenablage hast, muss der Zeichensatz nicht unbedingt UTF-8 sein. Zum Text koennte in der Zwischenablage aber noch der urspruengliche Zeichensatz, z.B. iso-8859-5, abgelegt sein. Diese Information koennte auch noch beim Einfuegen ins Textfeld vorhanden sein. Wenn also die Umwandlung erst beim Abschicken erfolgt, koennte dies daran liegen, dass der Zeichensatz des Textes mit dem Zeichensatz der Seite, in der das Formular ist und mit dem Zeichensatz in der verarbeitenden und ausgebenden Seite nicht uebereinstimmt, z.B. weil er iso-8859-1 ist. Damit komme ich dann doch noch einmal auf meine Mail von gestern zurueck, die sich auf falsche Zeichensatz-Angaben bezog, obwohl ich spaeter dachte, die waere aufgrund eines Missverstaendnisses voellig am Thema vorbei. Ansatzpunkte sind hier wie gesagt: Meta-Tag, PHP-Header, Server- und Browser-Einstellungen. Allerdings koennte man auch genau anders herum vermuten: Wenn der Text in ein Formularfeld einer Seite eingefuegt wird, deren kyrillischer Zeichensatz nicht mit dem des einzufuegenden Textes uebereinstimmt, wandelt der Browser die Zeichen bereits beim Einfuegen ins Formularfeld um. Welche Vermutung zutrifft, ist u.U. sogar browserabhaengig! Opera handhabt das Ganze ja auch anders, als die anderen beiden... Ein weiterer interessanter Ansatzpunkt: Du erwaehntest ja, dass Du korrekt UTF-8-Zeichen siehst (und zurueckschreibst?), wenn Du Dir die Daten mit phpMyAdmin direkt aus der Datenbank holst, die Daten also nicht ueber Kopieren und Einfuegen in das Formularfeld gelangen. D.h. aus den obigen Vermutungen und Beobachtungen laesst sich eine Versuchsreihe bauen, mit der Du eingrenzen kannst, wo das Problem tatsaechlich liegt. Hier kann auch Javascript helfen, um z.B. den Inhalt des Formularfelds nach dem Einfuegen auszulesen (ohne zu versenden). Vielleicht kann man das Problem dann sogar am Ende nicht nur lokalisieren, sondern auch loesen. Da mache ich mit heute Abend einmal dran, wenn mir keiner zuvor kommt. :-) So, das war jetzt eine Menge Information, aber ich hoffe, sie ist erstens verstaendlich, ist zweitens nicht an Deiner Intention vorbei und hilft drittens weiter. ;-) Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive