Hi!
Wenn ich den Charset
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
verwende, habe ich das Problem, dass Umlaute, die aus die aus Datenbank abgerufen werden als Hieroglyphen dargestellt werden. Umlaute, die direkt in der HTML-Datei stehen, werden im Gegensatz dazu richtig angezeigt.
Das heißt, dass die Inhalte aus dem DBMS in einer anderen Kodierung geliefert werden, als ISO-8859-1.
Wenn ich den Charset
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
verwende ist es genau umgekehrt. Umlaute aus Datenbank sind richtig, festgeschriebene Umlaute falsch.
Es reicht nicht, einfach auf einen Briefumschlag etwas draufzuschreiben und dann zu erwarten, dass das drinliegt. Wenn du eine andere Kodierungsangabe (in Content-Type-Angabe leider fälschlich als charset benannt) machst, musst du deinen Text auch in diese Kodierung bringen.
Kann mir jemand bei diesem Problem helfen? Ich weiß echt nicht mehr weiter.
Generell auf UTF-8 umzusteigen wäre keine ganz schlechte Idee. Prüf doch mal, ob du das mit deinem Projekt auch machen kannst.
Die Datenbank wurde unter dem Charset latin1_german2_ci betrieben, das ganze läuft unter xampp. Kann das vielleicht an irgendeiner Einstellung im Apache liegen?
Nein, aber dass MySQL nicht nur eine Stelle hat, an der man Codierungen konfigurieren kann, wird oftmals übersehen. Insgesamt sind es 10 verschiedenartige. Letztlich interessieren, wie schon so oft hier gesagt, nur zwei. Die Kodierungskonfiguration deiner Felder (jedes Stringtyp-Feld einzeln. Tabellen- und Datenbank-Kodierungsangabe sind nur Defaultwerte für neu anzulegende Elemente) und die auf der Verbindung zwischen deinem Script und dem DBMS ausgehandelte Kodierung (Stichwörter: mysql(i)_set_charset() oder SET NAMES).
Wenn du diese beiden Stellen berücksichtigst, und trotzdem noch Müll ankommt, schau ob der phpMyAdmin den Tabelleninhalt richtig anzeigt. Tut er das nicht, passt die Kodierung deiner Daten nicht zur Angabe der Feldkodierung.
Lo!