TYPO3 Seite auf UTF-8 umstellen

Mo, 26.03.2012 - 16:50 -- admin

UTF-8 Kodierung wird im laufen der nächsten Version/en Standard in TYPO3 sein, noch kann man das Verhalten über $TYPO3_CONF_VARS['SYS']['setDBinit'] in der Datei localconf.php beinflussen. Man sollte allerdings schon jetzt, wenn man auf TYPO3 Version 4.4 und älter Updated, gleich das ganze System auf UTF-8 umstellen. Sonst gibt es wieder hässliche Umlautprobleme.

Datenbank konvertieren

Am einfachsten und sichereste konvertiert man eine komplette Datenbank direkt in der Console, dazu wirkt folgendes Skript ware wunder (SSH: MySQL Tabellen / Felder zu UTF-8 konvertieren). Alternativ kann man es auch direkt über die TYPO3 EXT: convet2utf8 im Backend machen, hab ich allerdings noch nicht getestet.

mysql --database=dbname -B -N -e "SHOW TABLES" \
| awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' \
| mysql --database=dbname &

localconf.php anpassen

Ab TYPO3 4.5 ist UTF-8 als Standard definiert. Hier muss sichergestellt werden, dass setDBinit und forceCharset in localconf.php nicht gesetzt sind, bei ältere Installationen muss man diese Werte auf UTF-8 umstellen.

$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'; 

Typoscript

Nutzt man in TYPO3 das Standard Formular so muss dieses extra auf UTF-8 umgestellt werden, dazu golgende Typoscript ins Template der Seite einfügen. Sonst werden generierte Mails aus dem Formular als iso-8859-1 rausgeschickt und logischerweise mit den üblichen "komischen Umlauten". Keine Ahnungs obs ein Bug oder Feature sein soll, ist mir bei den Versionen Version 4.4 und 4.5 untergekommen (neuere noch nicht getestet).

page.config.formMailCharset= utf-8