Beim Umgang mit TYPO3 (und anderen PHP Projekten) und einer UTF-8 Datenbank gibt es einen Stolperstein, der nicht so offensichtlich zu lösen ist.
Der Kniff ist die Datenbank beim Initialisieren auf UTF-8 einzustimmen… entweder im Konfigurationstool unter “setDBinit” mit:
1 2 3 4 | SET NAMES utf8 SET CHARACTER SET utf8 SET SESSION character_set_server = utf8 SET character_set_connection = utf8 |
… oder einfach direkt in der typo3conf/localconf.php:
1 | $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8'.chr(10).'SET CHARACTER SET utf8'.chr(10).'SET SESSION character_set_server = utf8'.chr(10).'SET character_set_connection = utf8'; |
EDIT: Ab TYPO 4.4 scheint es Probleme mit dieser Konfiguration zu geben. Verwendet stattdessen einfach nur den ersten Befehl “SET NAMES utf8;”.
Tags: MySQL, PHP, TYPO3, UTF-8, Zeichensatz
Hi,
ich hab deine Anleitung gerade ausprobiert.
Wofür braucht man SET CHARACTER SET utf8 und
SET SESSION character_set_server = utf8?
Viele Grüße
Jörg
Tja, gute Frage eigentlich. Hab mir das im Detail nie angeguckt.
Wir haben hier gerade ein TYPO3 Projekt auf Version 4.4 aktualisiert, danach waren wieder sämtliche Umlaute zerschossen (http://bugs.typo3.org/view.php?id=14740).
Nur mit “SET NAMES” scheint der ganze Kram wieder zu funktionieren.
Liegt meist an mySQL…. ich würde eigentlich all das nur von der Datenbank abhängig machen.
Und mach mal öfter Einträge – wie oft soll ich UTF-8 mit Typo3 lesen?!
Was meinst du genau? Mit diesem setDBInit und zusätzlich forceCharset für das Backend funktioniert UTF-8+TYPO3 eigentlich flächendeckend.
Das Problem kann ich bestätigen – die Lösung auch. Bei mir hat es auch mal kurzfristig ohne Eintrag geklappt. Bei jweiland.net geht man von einem Fehler im Install Tool aus, wenn mehrere Zeilen in dem setDBinit Formularfeld stehen.
In TYPO3 Version 4.4.2 schaut der Eintrag mit o.g. Einstellungen nach Abspeichern in der localconf.php wie folgt aus:
$TYPO3_CONF_VARS['SYS']['setDBinit'] = ‘SET NAMES utf8\’ . LF . \’SET CHARACTER SET utf8\’ . LF . \’SET SESSION character_set_server = utf8\’ . LF . \’SET character_set_connection = utf8′; // Modified or inserted by TYPO3 Install Tool.
@AaL: Setz mal die Textfarbe für das Comment-Feld auf #fff, schwarz auf dunkelblau hat einen recht geringen Kontrastwert ;)
/burn