Umlaute in DB werden nicht richtig eingetragen

SilverNavigator

Losegauner.de
ID: 44192
L
20 Mai 2006
652
23
Hallo !

Ich habe ein kleines Problem. Und zwar habe ich ein Formular. Wenn in dieses Umlaute wie ä ü oder ö eingetragen werden, werden diese nicht richtig in der DB abgespeichert.

MySQL Version: 4.1.22
MySQL-Zeichensatz: UTF-8 Unicode (utf
Zeichensatz / Kollation der MySQL-
Verbindung: utf8_general_ci
Die einzelnen Tabellen sind:latin1_german1_ci

Ist daran irgendwas falsch ?

ü wird zum Beispiel zu: ü
Ä zu: Ä

Hab keine Ahnung wo dran das liegt ?!? :(
 
Welchen Zeichensatz hat das Formular (entweder per Header oder als Meta-Tag angegeben)?
Afaik sendet der Browser nämlich seine Antwort in dem Zeichensatz, in dem die Seite ausgeliefert wurde...
 
Hallo,

deine Frage erinnert mich dunkel, obwohl du es nicht schreibst, daran, dass der Charset bei PHPMyAdmin nicht richtig eingestellt ist oder wie kontrollierst du, dass die Umlaute nicht richtig in der DB sind.

Wenn die Umlaute bei der Ausgabe auf der Webseite falsch auftauchen, denke ich auch, dass es am Header der gelieferten Webseite liegt.
 
dass der Charset bei PHPMyAdmin nicht richtig eingestellt ist oder wie kontrollierst du, dass die Umlaute nicht richtig in der DB sind.

In der Datenbank bekomme ich doch die eingetragenen Daten angezeigt und dort werden die Umlaute schon nicht mehr richtig dargestellt.

Wenn ich diese manuell in der DB ändere, werden Sie auch richtig bei der Ausgabe dargesellt. Allerdings war es bei der Ausgabe HTML Datei nötig das in den Header einzufügen:

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1;">


In der Formular.php ist soweit ich sehe kein Meta Tag drin, kann ich diesen auch einfach dort einfügen oder liegt es an den Einstellungen der DB?
 
Zuletzt bearbeitet:
Jede Datei hat nochmal eine bestimmte Kodierung.

Schau dir die Formular.php z.b mal mit Notepad++ an. In der Menüleiste gibt es einen Punkt der der die Kodierung der Datei anzeigt und diese ändern kann.

mfg
 
Unter Kodierung steht "Ansi" ?!?

Musste in die erste Zeile das kopieren:

PHP:
<? header('Content-type: text/html; charset=ISO-8859-1'); ?>


Jetzt geht´s...
 
HTML·PHP·MySQL Umlaute

Umlaute HTML - PHP - MySQL: Moegliche Loesung
------------------------------------------------

Mein HTML:

<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">

Mein PHP:

verzichtet auf $bla = htmlentities($bla);
(aus persönlichen Gründen)

Mein phpMyAdmin:

latin1_german_ci


Mein (z.B. Thunderbird 10.0.2):

ist auf 'Westlich (ISO-8859-1)' eingestellt.


So geht's mir :)
 
Ichg habe bei mir alles auf UTF-8 eingestellt. So klappt es auch:

Notepad++ : Charset "UTF-8 ohne BOM" (Wichtig, weil sonst keine Header mehr gesendet werden können)

HTML: <meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">

CSS: @charset"UTF-8";

Formular: <form ... accept-charset="UTF-8">

DB: utf8_general_ci

Dann braucht man auch die Umlaute nicht mit ä usw. zu schreiben.