Sven Rautenberg: PHP, MySQL und UTF-8

Beitrag lesen

Moin!

ich habe ein Problem mit in UTF-8 codierten Daten, welcher ich an eine MySQL-Datenbank schicke, wieder heraushole und ausgeben möchte.
Es klappt auch fast alles, außer, dass nur Fragezeichen ausgegeben werden.

Werde dir bewußt, welche Komponenten alles am Zeichensatz rumspielen und das Ergebnis verfälschen können - da gibts nämlich ganz schön viele:

1. Dein Texteditor für die PHP-Skripte. Kann der UTF-8? Speichert der das auch ordentlich ab?
2. Deine Datenbank-Befüllungs-Datei. Ist die auch wirklich in UTF-8 geschrieben?
3. Die Datenbank selbst, obwohl ich aus Erfahrung vermuten würde, dass die eigentlich am allerwenigsten Probleme macht.
4. Ganz wichtig: Die PHP-Skripte selbst, die den Krempel wieder ausgeben, müssen zwingend nicht nur die Bytes von der DB zum Browser schaufeln, sondern natürlich auch dafür sorgen, dass der Browser die richtige Zeichencodierung (idealerweise eben UTF-8) benutzt.
5. Und der Browser selbst muß UTF-8 dann natürlich nicht nur kriegen, sondern auch verarbeiten können.

Alle diese Voraussetzungen müssen stimmen, damit deine arabischen und chinesischen und kyrillischen Zeichen überhaupt angezeigt werden können. Und selbst dann sind insbesondere für Chinesisch meist noch spezielle Font-Dateien erforderlich, weil diese Zeichen in den meisten normalerweise benutzten Fonts nicht enthalten sind (sonst siehst du allerdings keine Fragezeichen, sondern Quadrate).

- Sven Rautenberg

--
My sssignature, my preciousssss!