bestehendes TYPO3 im UTF-8 Modus verwenden

Kategorie: TYPO3
Publikationsdatum: 29.03.2011
In den älteren TYPO3-Versionen war es Standard, dass die Datenbank, die Datenbankverbindung sowie die Ausgabe über den Zeichensatz latin1 lief. Bei den neusten Version ist alles schon standardmäßig auf UTF-8 gesetzt. Sollte man nun aber ein altes TYPO3 auf UTF-8 umstellen müssen, eine kleine Anleitung anbei.

Bei der Umstellung ist auf die richtige Reihenfolge zu achten, dass am Ende nicht zwei verschiedene Zeichensätze in der Datenbank sind.


Dump der Datenbank erstellen

Als erstes bitte ein Datenbank-Dump erstellen. Dies kann über die Konsole mit dem folgendem Befehl erfolgen. Bitte USER, PASSWORD, HOST und DB durch die eigenen Daten ersetzen.

mysqldump --opt -Q -u USER -pPASSWORD -h HOST DB > dump.sql

Anschließend muss man im Dump noch Charset und Kollation anpassen. Aus der Zeile ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; würde dann beispielsweise ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; werden.



Umstellung der Datenbank-Kollation auf UTF-8

Als nächstes die Kollation der Datenbank ändern. Dies kann am einfachsten mit dem Tool phpMyAdmin durchgeführt werden. Oft ist diese Open-Source-Software schon vom Provider vorinstalliert. Wenn dies nicht der Fall sein sollte, dann kann man auch mit dem Extension-Manager die gleichnamige TYPO3-Erweiterung installieren.

Nach dem Aufruf von phpMyAdmin muss man nur den Menüpunkt Operationen aufrufen und dann bei Kollation den Eintrag utf8_general_ci auswählen. Für Deutschland und Österreich wäre auch noch die Kollation utf8_unicode_ci möglich, allerdings ist diese langsamer und hat als einzigen Unterschied die Sortierung von ß nach ss und nicht nach einfachem s. Daher sollte man diese langsamere Variante später bei Bedarf nur für einzelne Felder umstellen.


Kovertierung der Datenbank

Vor der Konvertierung wäre es nicht schlecht, wenn man an einem "sicheren" Ort ein Backup des erstellten Dumps ablegen würde. Anschließend kann man dann mit folgendem Befehl den Dump konvertieren:

iconv -f iso-8859-1 -t utf8 dump.sql > dump-iconv.sql

Wenn man einen anderen Zeichensatz als ISO 8859-1 verwendet hat, bitte die Angabe hinter dem -f anpassen. Der Dump liegt nun UTF-8-kodiert vor.


TYPO3 konfigurieren

Bevor die Datenbank wieder eingespielt werden können, müssen die Einstellungen im Install-Tool gemacht werden. Wichtig sind hier vor allem 2 Einträge: setDBinit und forceCharset.

[setDBInit] muss den Eintrag set names utf8; haben. Dieser Eintrag sorgt dafür, dass die Datenbank weiß, in welchem Datensatz die Daten übermittelt werden. Oft wird dieser Eintrag vergessen und dann speichert die Datenbank intern doppelt kodiertes UFT-8.

Bei [forceCharset] muss utf-8 eingetragen werden. Hiermit wird das Backend und Frontend umgestellt. Gleichzeitig werden also auch die TypoScript-Eigenschaften metaCharset und renderCharset richtig eingestellt.

Wenn im PHP die Module iconv (php5) und mbstring aktiviert sein sollten, sollten bei [t3lib_cs_convMethod] und [t3lib_cs_utils] der Wert iconv eingetragen werden.

Anschließend bitte die temp_CACHED_-Dateien löschen. Diese Dateien sind im Verzeichnis typo3conf zufinden.


Datenbank wieder einspielen

Nun verwendet TYPO3 UTF-8 für die Datenbankverbindung, sowie für die Ausgaben im Frontend und Backend. Der nächste Schritt ist nun das zurückspielen der Datenbank. Mit folgendem Befehl kann man dies per Konsole durchführen. Auch hier bitte USER, PASSWORD, HOST und DB durch die eigenen Daten ersetzen.

mysql -u USER -pPASSWORD -h HOST --default-character-set=utf8 DB < dump-iconv.sql


Mittels dem Zusatz --default-character-set=UTF8 wird beim Import mitgeteilt, dass die Daten schon im UTF-8-Format vorliegen. Würde man diese Angabe nicht anfügen, erhielte man anstatt üöä, üöä.

 

Überprüfung der Umstellung

Am Ende sollte man die Umstellung auf Erfolg testen. Werden die Umlaute im Frontend, im Backend um phpMyAdmin richtig dargestellt? Noch dazu sollte man z.B. einen Admin-User mit Umlaute im Namen versehen und dann schauen, ob überall diese Umlaute richtig dargestellt werden,
Stichwörter: bestehendes TYPO3, UTF-8
 
 
NACH OBEN