amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > HTML-Forms und MySQL: Probleme mit Umlauten und Sonderzeichen [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

18.02.2008, 16:46 Uhr

Mad_Dog
Posts: 1944
Nutzer
Hallo,

Ich stehe gerade vor folgendem Problem:

Ein HTML-Formular mit Texteingabefeldern soll mittels eines php5-Programms ausgewertet werden. Die Texte, die man in die HTML-Forms eingibt, sollen in einer MySQL 5 Datenbank landen.

Das funktioniert soweit alles gut, bis auf Umlaute und Sonderzeichen. Diese landen in der Datenbank verstümmelt (d.h. wirre Zeichenfolge).

Welche Kollation in der Datenbanktabelle ist für deutschen Text sinnvoll? Ich habe mal latin1_general_ci angegeben.

Muß ich die Strings, die ich per php aus dem HTML Form auslese, irgendwie konvertieren, bevor sich sie in die Datenbank scheibe, damit die Umlaute richtig abgespeichert werden?


--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 12:25 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von Mad_Dog:

Das funktioniert soweit alles gut, bis auf Umlaute und Sonderzeichen. Diese landen in der Datenbank verstümmelt (d.h. wirre Zeichenfolge).

Welche Kollation in der Datenbanktabelle ist für deutschen Text sinnvoll? Ich habe mal latin1_general_ci angegeben.


Ich bin alles andere als ein MySQL-Spezialist, aber:

COLLATE meint die Sortierung bzw. den Abgleich von Datenbankfeldern, d.h. was bei ORDER BY bzw. x = y mit Stringfeldern passiert.

Wenn Du Probleme mit Umlauten und Sonderzeichen hast, ist nicht die Kollation Dein Problem, sondern der verwendete CHARACTER SET. Früher war der Default bei MySQL latin-1, heute ist es UTF-8.

Wenn die Übertragung von Sonderzeichen nicht funktioniert, kann das leider an vielen verschiedenen Dingen liegen. Die Webseite muß den korrekten Charset angeben (z.B. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />), evtl. mußt Du utf8_encode / utf8_decode verwenden, die Datenbanktabellen müssen mit entsprechenden Charset angelegt sein, evtl. ist auch die Unicode-Unterstützung des von Dir verwendeten Browsers fehlerhaft... fiese Sache, das alles passend zusammenzubiegen, und mit Sicherheit in einem MySQL/PHP-Forum besser aufgehoben.

Ich habe bis heute meine Linux-Installation nicht auf ein einheitliches Verwenden von UTF-8 bügeln können...

[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 13:00 Uhr

Mad_Dog
Posts: 1944
Nutzer
Danke!

Hab's aber in der Zwischenzeit selbst herausgefunden.

Die Strings, die ich von den HTML-Forms erhalten habe, waren utf8 codiert. Folglich half utf8_decode weiter.
--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 13:33 Uhr

Mad_Dog
Posts: 1944
Nutzer
Wegen dem Begriff Kollation: In phpMyAdmin wird die Zeichencodierung (latin, utf8, usw.) als Kollation bezeichnet.

--
http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

26.02.2008, 11:15 Uhr

Solar
Posts: 3680
Nutzer
Dann führt Dich phpMyAdmin an der Stelle in die Irre. COLLATE und CHARACTER SET sind für MySQL zwei unterschiedliche Dinge, und COLLATE betrifft Vergleiche, während CHARACTER SET die Codierung bezeichnet.

Aus der Online-Doku für MySQL 5.1, kursive Hervorhebung von mir:

Zitat:
8.1.5.5. Collations Must Be for the Right Character Set

Each character set has one or more collations, but each collation is associated with one and only one character set. Therefore, the following statement causes an error message because the latin2_bin collation is not legal with the latin1 character set:

code:
mysql> SELECT _latin1 'x' COLLATE latin2_bin;
ERROR 1253 (42000): COLLATION 'latin2_bin' is not valid
for CHARACTER SET 'latin1'



[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > HTML-Forms und MySQL: Probleme mit Umlauten und Sonderzeichen [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.