Thread UTF-8 in Verbindung mit mysql (12 answers)
Opened by xtomcatx at 2008-09-13 06:08

xtomcatx
 2008-09-16 18:12
#114716 #114716
User since
2006-08-27
31 Artikel
BenutzerIn
[default_avatar]
moritz+2008-09-16 00:07:10--
xtomcatx+2008-09-16 00:03:21--
Die Aussage im Artikel >>Charset oder "Warum funktionieren meine Umlaute nicht?"<<, der im $foo-Magazin und perlgeek.de erschienen ist, dass die Methode charset() Auswirkungen auf die Kodierung von param() haben soll, ist übrigens falsch. Das lässt sich nur über den erwähnten Schalter ":utf8" aktivieren.


Also ich hab das tatsächlich getestet bevor ich das geschrieben hab. Bei mir gehts.

Ach, von Dir ist der Artikel? Hmm, beschwören möchte ich das jetzt nicht, dass es falsch ist, aber ich habe es weder in der Beschreibung gelesen, noch selbst nachvollziehen können, noch den Quelltext entsprechend deuten können. Hast Du mal ein Beispiel anhand dessen man das nachvollziehen kann?
Die folgenden Aussagen beziehen sich auf 3.42. Ab Zeile 453 werden die Parameter von utf8 dekodiert und das aber nur, wenn die Variable $PARAM_UTF8 gesetzt ist. Das passiert allerdings nur einmal in Zeile 909 und auch nur dann, wenn des Pragma -utf8 übergeben wurde.
Ich wüsste nicht, wie das funktionieren soll, dass charset() Auswirkungen auf dieses Verhalten haben soll. Vielleicht bist Du selbst nem Zeichensatz-Problem zum Opfer gefallen und die beiden Fehler haben sich gegenseitig aufgehoben?
Ich wollte Dir damit auch nicht an den Karren fahren, sondern nur andere vor dem gleichen Fehler bewahren.

moritz+2008-09-16 00:07:10--
Quote
Mit aktueller Version (stable 3.0008 hat den Schalter zwar, scheint aber fehlerhaft) funktionieren Abfragen und inserts reibungslos. Das "set names" ist damit auch nicht mehr notwendig.


Meinst du ich schreibe grundlos was von "in neueren Versionen (ab 3.29) werden die Strings dekodiert zurückgegeben"?

3.29 > 3.0008.

Das hatte ich die ganze Zeit im Hinterkopf, hab es auch mehrfach gelesen. Nur hatte ich nicht damit gerechnet, dass in Debian Stable so ne alte Version on board ist. Hier habe ich mich allerdings etwas ungünstig ausgedrückt, der letzte Satz bezog sich auf das DBI-Modul. CGI.pm war allerdings noch älter, das war glaub ich gar nur 2.73. Übrigens habe ich dafür auch die Schuld auf mich geladen.
Zum einen wurde die utf8-Unterstützung erst ab Version 3.30 eingeführt (siehe CHANGES und alte Versionen auf CPAN), zum anderen bezieht sich das nur auf das neue Pragma. Etwas anderes kann ich weder aus dem Paket noch aus der Doku entnehmen. Habe deine Version aber auch noch auf einer anderen Seite gelesen (hab ich grad nicht mehr parat).

View full thread UTF-8 in Verbindung mit mysql