Schrift
[thread]12486[/thread]

UTF-8 in Verbindung mit mysql (Seite 2)

Leser: 4


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
xtomcatx
 2008-09-16 02:03
#114687 #114687
User since
2006-08-27
31 Artikel
BenutzerIn
[default_avatar]
moritz+2008-09-14 19:47:03--
Du meinst etwas so exotisches wie ein Euro-Zeichen, das rein zufällig unser offiziellles Währungssymbol ist und nicht in Latin-1 auftaucht? Oder die exotischen Sprachen, die über die Hälfte der Weltbevölkerung sprechen?
*kopfschüttel*


In ISO-8859-15 ist es dabei, das war der Grund für diesen Zeichensatz. Wobei ich natürlich auch Unterstützer von Unicode bin, sonst würde ich mich nicht damit rumschlagen.

So, nach einer sehr langen und ausgedehnten Fehlersuche habe ich meinen Fehler gefunden. Die stable-Pakete von Debian sind uralt und weder der Schalter "-utf8" für CGI noch der "mysql_enable_utf8" haben funktioniert, aber es gab weder ne Warnung noch nen Fehler. Das finde ich fast etwas schwach, aber schlussendlich war ich selbst Schuld.

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.

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.
moritz
 2008-09-16 02:07
#114688 #114688
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
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.

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.
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).
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2008-09-13 06:08.