Heute zeigen wir euch, wie ihr bereits gefüllte MySQL Datenbanken in UTF-8 umwandeln könnt. Das ganze ist im Bereich TYPO3 und mehrsprachigen Seiten relativ sinnvoll, damit alles wie gewünscht angezeigt wird.
Für unsere Konvertierung in UTF-8 benötigt ihr Shell-Zugriff auf euren Server und die Datenbank.
Backup erstellen
Zunächst solltet ihr ein Backup erstellen. Ganz einfach geht das mit dem wunderbaren Tool MySQLDumper.
MySQL Dump als UTF-8 erstellen
Mit dem folgenden Shell Kommando erstellt ihr eine .sql-Datei, welche direkt auf UTF-8 ausgelegt wird und ihr somit nur noch entsprechend importieren müsst.
Bitte beachtet: Datenbankdaten wie Benutzer und Datenbankname müsst ihr auf eure Gegebenheiten anpassen.
mysqldump --opt -Q -u USER -p DATABASE | sed s'/DEFAULT CHARSET=.*;/DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;/g' > temp.sql
MySQL Restore als UTF-8
Als nächstes Importieren wird diesen UTF-8 Dump wieder in die Datenbank wie folgt:
mysql -u USER -p --default-character-set=utf8 DATABASE < temp.sql
Überprüfung
Nun können wir in einem phpMyAdmin überprüfen ob unsere Konvertierung funktioniert hat. Dort solltet ihr als Tabellen-Kollation „utf8_unicode_ci“ zu sehen bekommen.
Außerdem könnt / solltet ihr in phpMyAdmin unter „Operationen“ noch die Standard-Kollation auf „utf8_unicode_ci“ stellen.
TYPO3 Einstellungen
Im Falle einer TYPO3 Installation stellen wir nun im Install-Tool noch folgende Werte ein:
$TYPO3_CONF_VARS[‚SYS‘][’setDBinit‘] = ‚SET NAMES utf8;‘;$TYPO3_CONF_VARS[‚BE‘][‚forceCharset‘] = ‚utf-8‘;
TYPO3 Cache leeren
Nach dem leeren des Caches sollte unsere Website und das TYPO3 Backend wunderbar inkl. aller Umlaute und Sonderzeichen anzeiget werden.
Schlusswort
Ein herzliches Dankeschön geht hierbei an Helmut-Peter Pfeufer, der mich mit seinem Artikel bereits mit dieser Lösung zum Ziel brachte. Sollte etwas nicht wie gewünscht funktionieren, erhaltet ihr in seinem Artikel noch weitere Informationen.
Vielen Dank!