Umlaute werden falsch über PHP in die MySQL-Datenbank gespeichert

LevFan

Grünschnabel
Hallo,

ich habe folgendes Problem und zwar will ich über PHP einen Datensatz in eine MySQL-Datenbank einfügen. Dieser Datensatz kann auch Umlaute enthalten. Wenn ich mir den zusammengesetzten SQL-String anzeigen lasse, zeigt der mir den richtigen Text an. Also Umlaute sind noch Umlaute. Kopiere ich mir den String nun und füge diesen von Hand in die Datenbank ein funktioniert alles wunderbar. Wenn ich den String jedoch mittels PHP absetzen will, schreibt PHP mir irgendwelche komischen Zeichen in die Tabelle.

Weiß eventuell jemand woran das liegt? Über Hilfe wäre ich sehr dankbar.

Gruß

Daniel
 
wenn das, was du in die DB einfügen willst nicht auf der seite ausgegeben werden soll, dann kannst du die umlaute auch direkt also XML code schreiben ä = ä ü = ü

versuchs mal
 
Es liegt an den unterschiedlichen verwendeten Zeichenkodierungen der einzelnen Systeme. Vermutlich stimmt die Eingabekodierung nicht mit der verwendeten Kodierung der Datenbank und/oder der Ausgabe nicht überein.

Welche Zeichenkodierung verwendest du denn?
 
Da ich die Datensätze später auch ausgeben muss und diese später auch noch bearbeitet werden sollen, kann ich leider nicht direkt den HTML-Code, wie z.B. ü, in die Datenbank schreiben.
 
Wird diese Zeichenkodierung denn auch von der Datenbank benutzt und bei der Ausgabe korrekt angegeben?
 
Danke für eure Hilfe.

Ich habe nun auch den Fehler gefunden. Es war alles richtig auf UTF-8 umgestelt, nur habe ich vor meine Ausgaben ein htmlentities($string) stehen. Das funktioniert bei UTF-8 allerdings nicht mehr so. Da muss es dann htmlentities($string,ENT_QUOTES,’UTF-8’) heißen.
 
Zurück