Lars: Problem: Formular -> Sonderzeichen in MySQL abspeichern

Beitrag lesen

Hallo,

ich habe auf meiner Seite, welche utf-8 codiert ist ein Formular, welchem ich auch ein Zeichensatzt zugeweisen habe:

<form action="newskom.php" method="post" accept-charset="utf-8">

Der Inhalt dieses Formulars soll dann in einer Tabelle meiner MySQL Datenbank gespiechert werden. Dort werden dann die umlaute wie ö ä ü aber als Sonderzeichen z.B. ä abgelegt.

Wo steckt wahrscheinlich der Fehler, bzw. wie löse ich das Problem?

In utf-8 belegen viele Zeichen mehr als ein Byte. Zeigst Du eine utf-8-kodierte Zeichenkette mit einem fest an einem Byte pro Zeichen orientierten Zeichensatz (wie zum Beispiel dem üblichen iso-8859-1) statt mit utf-8 an, erhältst Du statt des einen gewünschten Zeichens logischerweise zwei falsche Zeichen als Ausgabe.

Dein Fehler ist also, dass du nicht mit utf-8 ausgibst, sondern mit iso-8859-1 (oder einem ählichen Zeichensatz). Merke: Wo man Zeichensatz X reinpackt, muss man auch Zeichensatz X wieder rausholen.

Wie du das Problem behebst, hängt davon ab, wo und wie du die Zeichen ausgibst. In einer HTML-Seite würde <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> helfen, am Besten als erstes im <head>-Block.

Gruß, Lars