Ein leidiges Problem im Webdevelopment sind die verschiedenen Zeichensätze. Viele Anbieter von Datenbanken setzen latin-1 als Standard, was gerade bei Seiten, die sich voll international ausrichten wollen, ein wenig Probleme bereiten kann. Oft führt das zu defekten Ausgaben. In diesem Beitrag möchte ich ein paar Lösungen für das Problem aufzeigen und zum Schluss die Lösung anhand des Zend Framework kurz zeigen.
Für die Extension mysql kann man natürlich einfach mittels:
|
|
die Verbindung nach dem Verbindungsaufbau auf UTF-8 umstellen. pdo_mysql ist nicht viel komplizierter:
|
|
Leider gibt das Probleme, wenn das verwendete Framework für die Datenbankverbindung Lazy-Connection verwendet bei dem die Verbindung zum Server zu Beginn der Laufzeit definiert, jedoch erst bei ersten eingehenden Query geöffnet wird. Da ich gerne mit Zend Framework und pdo_mysql arbeite, gibt es einen trick, wie man trotzdem die Verbindung auf UTF-8 umschalten kann:
|
|
Dies kann natürlich im Konfigurationsteil noch etwas verfeinert werden, aber ich denke, die Idee ist klar.
UPDATE: In Zend_Application könnte die INI-Config so aussehen:
|
|
Update #2: Zend Framework 1.8 bringt für alle unterstützten Datenbankadapter mittlerweile charset-support mit sich, der wie folgt aussieht:
|
|