amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > HTML-Forms und MySQL: Probleme mit Umlauten und Sonderzeichen [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2008-02-18, 16:46 h

Mad_Dog
Posts: 1944
User
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

[ - Answer - Quote - Direct link - ]

2008-02-19, 12:25 h

Solar
Posts: 3680
User
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...

[ - Answer - Quote - Direct link - ]

2008-02-19, 13:00 h

Mad_Dog
Posts: 1944
User
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

[ - Answer - Quote - Direct link - ]

2008-02-19, 13:33 h

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

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

[ - Answer - Quote - Direct link - ]

2008-02-26, 11:15 h

Solar
Posts: 3680
User
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'



[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > HTML-Forms und MySQL: Probleme mit Umlauten und Sonderzeichen [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.