Umlauteproblem in MySQL

Umlauteproblem in MySQL

am 10.10.2006 20:48:41 von Erik Hastens

Hallo,

ich habe auf meiner Website das Problem, daß EIN User über meine Formulare
keine deutschen Umlaute in meine MySQL-Datenbank schreiben kann. Nach POST
wird das immer in folgendem Format in die DB geschrieben:

Mir fällt auf ...
Wettkämpfen

(falls das hier nicht korrekt dargestellt wird: Erster Beitrag auf
http://www.runtimes.de/forum_showtopic.php?id=133)

Ich weiß zwar, daß der User einen amerikanischen Mozilla verwendet, nach
seiner Aussage hat er aber nur auf meiner Site Probleme. Mir ist die Ursache
nicht klar. Liegt das an den Zeichensätzen der MySQL-Datenbank (Language:
English ISO 8859-1 unter MySQL 3.23 ist doch ok?) oder an meinem Doctype:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

?? Wäre dankbar für jeden Hinweis, was ich von meiner Seite ändern kann.

Thomas

Re: Umlauteproblem in MySQL

am 10.10.2006 21:12:59 von Sebastian Suchanek

Thus spoke Erik Hastens:

> ich habe auf meiner Website das Problem, daß EIN User über
> meine Formulare keine deutschen Umlaute in meine
> MySQL-Datenbank schreiben kann. Nach POST wird das immer in
> folgendem Format in die DB geschrieben:
> [...]

Da man sich das Eingabeformular nicht anschauen kann, ein
Schuß ins Blaue:

http://de.selfhtml.org/html/formulare/definieren.htm#zeichen kodierung


HTH,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de

Re: Umlauteproblem in MySQL

am 10.10.2006 21:43:54 von Helmut Chang

Erik Hastens schrieb:

> ich habe auf meiner Website das Problem, da� EIN User �ber meine Formulare
> keine deutschen Umlaute in meine MySQL-Datenbank schreiben kann. Nach POST
> wird das immer in folgendem Format in die DB geschrieben:
>
> Mir fällt auf ...
> Wettkämpfen

Hmm... Mir fällt auch auf... Dass nämlich das die einzigsten zwei
Umlaute in deinem Posting sind, die in meinem Newsreader korrekt
dargestellt werden.

Da deiner keinen Content-Type-Header sendet (OjE halt) und ich per
default UTF-8 eingestellt hab, schließe ich daraus, dass die Daten von
diesem Benutzer UTF-8 kodiert auf dem Server ankommen.

> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Der DOCTYPE hat damit gar nix zu tun. Wichtig ist, welchen
Content-Type-Header der Server für die Seite mit dem Formular sendet.
Der sollte mit dem Charset in der DB übereinstimmen. Und brave Browser
verwenden AFAIK auch dieses Charset für die Formulardaten.

Ich glaube nicht, dass das Problem primär etwas mit der Datenbank zu tun
hat, warte aber trotzdem noch mit einem F'Up in eine passendere Gruppe.

gruss, heli

Re: Umlauteproblem in MySQL

am 10.10.2006 22:07:11 von Claus Reibenstein

Erik Hastens schrieb:

> ich habe auf meiner Website das Problem, daß EIN User über meine Formulare
> keine deutschen Umlaute in meine MySQL-Datenbank schreiben kann. Nach POST
> wird das immer in folgendem Format in die DB geschrieben:
>
> Mir fällt auf ...
> Wettkämpfen

Das sieht verdächtig nach UTF-8 aus.

> (falls das hier nicht korrekt dargestellt wird: Erster Beitrag auf
> http://www.runtimes.de/forum_showtopic.php?id=133)

Definiere "korrekt". Da in Deinem Header kein Zeichensatz angegeben ist,
Du also formal mit ASCII postest, diese Zeichen jedoch (und Deine
Umlaute übrigens auch) kein ASCII sind, können diese bei jedem anders
aussehen. Von daher ist "korrekt" ein ziemlich sinnleerer Begriff.

> Liegt das an den Zeichensätzen der MySQL-Datenbank (Language:
> English ISO 8859-1 unter MySQL 3.23 ist doch ok?) oder an meinem Doctype:
>
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Schön. Und welchen Zeichensatz hast Du auf Deiner Webseite eingestellt?
Etwa auch keinen? Das würde das Phänomen erklären.

Gruß. Claus

Re: Umlauteproblem in MySQL

am 11.10.2006 09:24:16 von Christian Kirsch

Am 10.10.2006 20:48 schrieb Erik Hastens:
> Hallo,
>
> ich habe auf meiner Website das Problem, daß EIN User über meine Formulare
> keine deutschen Umlaute in meine MySQL-Datenbank schreiben kann. Nach POST
> wird das immer in folgendem Format in die DB geschrieben:
>
> Mir fÀllt auf ...
> WettkÀmpfen
>

Also UTF-8. Vermutlich schickst Du mit Deiner HTML-Seite keine
Encoding-Information, sodass jeder Browser das tut, was er für richtig
hält.

Was dazu passen würde, dass auch Dein obskurer "Newsreader" keinen
Content-type-Header schickt - wiederum muss jeder Leser irgendwie
entscheiden, wie die Ümläute in Deinen Postings gemeint sein könnten.

Zur Illustration habe ich mal die Kodierung für dieses Posting auf
UTF-8 geändert.

Re: Umlauteproblem in MySQL

am 11.10.2006 18:23:30 von Erik Hastens

Hallo,

danke erst einmal für die diversen Anregungen. Ich habe jetzt zunächst mal
einigen Seiten den Zeichensatz mitgegeben, beim Testen jetzt mal iso-8859-1,
und dann diese sowie ungeänderte Seiten mit dem Browser aufgerufen. Dabei
lässt sich in der Tat wunderbar nachvollziehen, daß mein Browser auch bei
abweichenden Encodingeinstellungen nur von der jetzt geänderten Page auf
iso-8859-2 gezwungen wird. Danke soweit.

Um abschließend nicht völlig off topic zu sein: Was genau bewirkt dann das
"Language"-Setting meiner MySQL-Datenbank, das ich in phpmyadmin als
iso-8859-1 sehe? Ist es wichtig, daß ich das auf denselben Zeichensatz
ändere wie die Webseiten? Vermutlich ja, aber ich verstehe den Zusammenhang
noch nicht ganz.

Danke
Erik

Re: Umlauteproblem in MySQL

am 11.10.2006 19:56:28 von Kris

Erik Hastens wrote:
> Um abschließend nicht völlig off topic zu sein: Was genau bewirkt dann
> das "Language"-Setting meiner MySQL-Datenbank, das ich in phpmyadmin als
> iso-8859-1 sehe? Ist es wichtig, daß ich das auf denselben Zeichensatz
> ändere wie die Webseiten? Vermutlich ja, aber ich verstehe den
> Zusammenhang noch nicht ganz.

Bitte lies
http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Gru ndlagen.html.
Wenn Du dann noch Fragen hast, frage hier bitte weiter.

Kris

Re: Umlauteproblem in MySQL

am 11.10.2006 22:46:31 von Erik Hastens

Kristian Köhntopp wrote:
> Bitte lies
> http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Gru ndlagen.html.
> Wenn Du dann noch Fragen hast, frage hier bitte weiter.

Hallo Kristian,

nein, das ist in der Tat (nicht mich, sondern das Thema) erschöpfende
Auskunft. Und macht noch einmal deutlich, daß ich dieses Thema in einigen
Projekten etwas vernachlässigt habe.

Vielen Dank!
Erik