Umlaute in datenbank

adblue

Well-known member
24 Juli 2009
57
2
hi

folgendes problem: ich will deutsche umlaute in einer mysqlDB speichern. die kollation der spalten ist auf utf8_general_ci eingestellt.

das ist doch der deutsche zeichensatz oder?
warum geht es dann nicht?
 
Vielleicht. Du schreibst nur "warum geht es dann nicht?" - das ist eine reichlich dünne Fehlerbeschreibung. Hier kann aber niemand hellsehen.

Wenn du dir helfen lassen willst, dann gib ein paar mehr Informationen. Was genau ist das Problem? Wie sieht das Script aus? Wie wird geschrieben und gelesen? Was steht in der Datenbank, wenn du mit Tools, wie z.B. phpMyAdmin reinschaust?
 
sieht nach einem Zeichensatz-Problem aus.

  • Sind die PHP-Dateien UTF-8 ?
  • Wurde der HTML-Zeichensatz auf UTF-8 gestellt?
  • Hast du die Datenbankverbindung (gemeint sind nicht die Tabellen) auf UTF-8 gestellt?
 
* Sind die PHP-Dateien UTF-8 ?
das steht auf jeder seite:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">


* Wurde der HTML-Zeichensatz auf UTF-8 gestellt?
`? siehe oben?

* Hast du die Datenbankverbindung (gemeint sind nicht die Tabellen) auf UTF-8 gestellt?
ja hab ich
 
das steht auf jeder seite:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Vielleicht solltest du dich für einen Zeichensatz entscheiden?!? Also entweder ISO-8859-1 oder utf-8.... :roll:
 
Sind die PHP-Dateien UTF-8 kodiert gespeichert?
(Sollte bei "Speichern unter..." auswählbar sein - je nach Editor)
 
ich verwende notepad++
und da kann ich einstellen: "utf-8 ohne BOM" oder "utf-8"

eingestellt war utf-8 ohne BOM

wenn ich aber utf-8 umstelle kommt im php skript die fehlermeldung:
warning: session_start() ... headers already send in line 1.
obwohl ich am skript nichts verändert habe.

:roll:
 
in deinem Browser hast du ISO eingestellt, folglich erhälst du eingaben aus deinen Formularen nicht in UTF-8.

Entweder da umstellen oder beim einfügen in die Datenbank entsprechend mit COLLATE wandeln. Gut ist auch immer dem SQL-Client zu sagen mit welchem Zeichensatz er arbeiten soll (Stichwort SET NAMES UTF-8)

Beim speichern der PHP solltest du jedenfalls UTF-8 without BOM wählen ;)