Typo3 komplett auf UTF-8 umstellen

There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.


Diese Tutorial soll zeigen, welche Schritte notwendig sind, um eine Typo3 Installation unter Linux von Beginn an auf UTF-8 einzustellen. Wenn diese Schritte befolgt werden, sollte es später keine Probleme mit Sonderzeichen im Frontend geben und auch in der Datenbank wird alles korrekt abgespeichert. Es wird davon ausgegangen, dass der Quellcode- und Dummy-Ordner von Typo3 bereits entpackt wurde und Typo3 über den Webbrowser erreichbar ist. Weiterhin sollte sich das Installtool noch im "123" Mode befinden, d.h. es wurde noch keine Datenbankverbindung erstellt und auch sonst keine weiteren Einstellungen vorgenommen.

MySQL

Als erstes werden wir eine Verbindung zum MySQL-Server aufbauen. Dazu öffnen wir ein neues Konsolenfenster und geben folgenden Befehl ein:

mysql -u root -p

Zur Erklärung:

mysql ----> Aufbau Verbindung zum MySQL-Server -u root ----> Einwahl als Nutzer root (u=User) -p ----> Abfrage des Passwortes für den Nutzer root

Die Anmeldung als root ist erforderlich, um neue Datenbanken anlegen zu dürfen. Dafür benötigst du natürlich das root-Passwort. In manchen Fällen ist es nicht standardmäßig gesetzt und der Parameter -p kann weggelassen werden (z.B. bei XAMPP-Installationen). Ist der Login erfolgreich verlaufen, können nun SQL-Anweisungen in der Konsole eingegeben werden.

Anlegen des Nutzers

Wichtig: Alle folgenden SQL-Befehle mit einem Semikolon (";") abschließen

Mit einem

CREATE USER 'typo3'@'localhost' IDENTIFIED BY 'password';

erzeugen wir nun einen neuen Datenbanknutzer. In unserem Beispiel soll dieser typo3 heißen und den lokalen MySQL-Server angehören. Werte in einfachen Anführungsstrichen sind bei Bedarf anzupassen.

Anlegen der Datenbank

Nun müssen wir noch eine neue Datenbank anlegen - natürlich mit UTF-8 Unterstützung. Dazu verwenden wir den SQL-Befehl

CREATE DATABASE `typo3` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Rechte für Datenbank anpassen

Der neue Nutzer braucht nun noch Rechte für die neue Datenbank, die wir später für Typo3 verwenden möchten. Volle Rechte an der erstellten Datenbank "typo3" erhalten wir mit dem SQL-Befehl:

GRANT ALL PRIVILEGES ON `typo3` . * TO 'typo3'@'localhost' WITH GRANT OPTION;

Im weiteren werden keine Kommandozeileneingaben mehr benötigt. Die Eingabe von

exit

beendet die Verbindung zum MySQL-Server bzw. schließt die Konsole.

Installtool einstellen

Im Browser kann nun das Installtool im "123" Mode aufgerufen werden (siehe oben). Die Felder Nutzername, Passwort und Host werden mit den eingangs gewählten Werten gefüllt. Wenn die vorherigen Befehle eins zu eins übernommen wurden, müsste folgendes eingetragen werden:

Im nächsten Schritt wählen wir die zu verwendende Datenbank aus (hier typo3).

Nach dem Anlegen der benötigten Tabellen geht es mit der Konfiguration im Installtool von Typo3 weiter. Unter dem Menüpunkt "All configurations" müssen dann folgende Einstellungen vorgenommen werden:

Zunächst sagen wir Typo3, das es UTF-8 verwenden soll. Im Feld [forceCharset] tragen wir deshalb folgendes ein:

utf-8

Weiterhin muss im Feld [setDBinit] folgendes eingetragen werden:

SET NAMES utf8;
SET CHARACTER SET utf8;
SET SESSION character_set_server=utf8;
SET character_set_connection = utf8;

Typo3 ist nun vollständig auf UTF-8 eingestellt. Vorallem die definierten Werte unter [setDBinit] tragen dazu bei, dass die Datenbank vor dem Schreibzugriff auf UTF-8 eingestellt wird.

Bei der Verwendung eines neuen Templates muss folgende Zeile im TypoScript angegeben werden, um auch eine UTF-8 Ausgabe im Frontend zu erreichen.

config.metaCharset = utf-8

Herzlichen Glückwunsch, Typo3 und UTF-8 sollten jetzt funktionieren, let's rock