Typo3 komplett für UTF-8 konfigurieren
- July 19th, 2010
- Posted in Keine Kategorie
- By Mr. Nerd
- Write comment
In Typo3 gibt es verschiedene Konfigurationsparameter, um eine durchgängige Nutzung von UTF-8 als Zeichensatz zu erzwingen. Und häufig kommt es vor, dass nur einige der Parameter umgesetzt werden, während andere nicht berücksichtigt wurden. Dies kann unter Umständen zu einer inkonsistenten Installation führen.
Dieser Beitrag listet die wichtigsten Parameter gesammelt auf. Vorher noch ein wichtiger Hinweis: Diese Einstellungen sollten gesetzt werden, bevor Inhalte für die Seite angelegt werden. Anderweitig kann die Kodierung der Texte in der Datenbank von den Systemeinstellungen abweichen, dies würde nach erneutem Editieren zur Zerstörung aller nicht-ASCII-Zeichen führen.
Einstellungen in der localconf.php
Die folgenden Werte müssen in der localconf.php gesetzt werden, diese findet sich im Typo3-Root unter typo3conf/localconf.php. Die Werte können entweder direkt von Hand in der Datei gesetzt werden oder, bequemer, über das Typo3 Installtool.
forceCharset
Der Wert dieses Feldes wird von Typo3 intern für zum Setzen verschiedener Zeichensätze genutzt. Er muss auf utf-8 gestellt werden.
multiplyDBfieldSie
Da UTF-8 für jedes Zeichen nur ein Feld benötigt, muss diese Einstellung auf 1 gesetzt werden. Dies entspricht einem Feld pro Zeichen.
setDBinit
Die in diesem Feld vorhandenen Befehle werden direkt nach dem Aufbau jeder Datenbankverbindung an den DB-Server gesendet und sollen für die Nutzung der korrekte Zeichenkodierung in der Datenbankverbindung sorgen.
In der Regel sollten die folgenden beiden Befehle ausreichen:
SET NAMES utf8; SET CHARACTER SET utf8;
UTF8filesystem
Sofern das verwendete Dateisystem UTF-8-Zeichen unterstützt, werden bspw. für den Upload auch Dateinamen mit Umlauten unterstützt. Dies sollte insbesondere bei Unix-System auf true gesetzt werden.
Gesammelte Einstellungen der localconf.php
Alternativ zum Setzen der Einstellungen über das Install-Tool kann auch der folgende Abschnitt direkt in die localconf.php kopiert werden:
$TYPO3_CONF_VARS['SYS']['UTF8filesystem'] = '1'; $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8'; $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'.chr(10).'SET CHARACTER SET utf8;'; $TYPO3_CONF_VARS['SYS']['multiplyDBfieldSize']=1;
Einstellungen in TypoScript
Zusätzlich sollten noch ein paar Einstellungen im Template der Seite gemacht werden. Der folgende Codeausschnitt sollte möglichst im Root-Template der Seite gesetzt werden:
config{
additionalHeaders = Content-Type:text/html; charset=utf-8
metaCharset = utf-8
}