dedlfix: Text mit Umlaute werden nicht angezeigt

Beitrag lesen

Tach!

ich habe XAMPP mit PHP Version 5.4.7 und MySQL Versions 4.0.4.2 installiert.

MySQL 4 und noch dazu 4.0 ist völlig veraltet. Ist das ein Schreibfehler oder wirklich so? MySQL 4.0 jedenfalls hat, was Zeichenkodierungen angeht, nur eine sehr rudimentäre Unterstützung eingebaut. Erst ab 4.5 ist das brauchbar. Aktuell sind aber die Version 5.6 oder MariaDB 10.0 (kompatibel zu MySQL 5.5 und 5.6).

Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.

Bitte zunächst die Grundlagen erarbeiten: http://wiki.selfhtml.org/wiki/Zeichenkodierung

Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.

htmlentities() ist eine Funtion, die man bei korrektem Umgang mit Zeichenkodierung nicht braucht. (Allerdings braucht man weiterhin htmlspecialchars(). Näheres zu dieser Problematik siehe Kontextwechsel.) Jedenfalls klappt es nicht, einfach eine Funktion auf eine Bytefolge zu hauen und ein Ergebnis zu erwarten, das man sich lediglich vorgestellt hat. Auch wenn man htmlentities() anwendet, benötigt man ein Grundverständnis zum Thema Zeichenkodierung, wenn ein brauchbares Ergebnis rauskommen soll.

Wie kann ich das Problem beheben?

Zunächst wäre eine Analyse notwendig. Wenn du allerdings noch am Anfang des Projekts stehst und keine bereits fehlerhaft kodierten Daten korrigieren musst, reicht es, die Hinweise zur Konfiguration der beteiligten Systeme im verlinkten Artikel und seinen Unterseiten zu beachten.

dedlfix.