t3n 13

Tipps zum Wechsel von Latin1 auf UTF-8: MySQL und TYPO3 auf UTF-8 umstellen

Seite 3 / 6

Falls der Server UTF-8 im Dateisystem verwenden kann, ist es möglich, einen Haken bei „[UTF8filesystem]“ zu setzen. Diese Konfiguration hat aber nichts mit der Datenbank-Umstellung zu tun und ist abhängig von den locale-Einstellungen des Servers. In der Datei „php.ini“ sollte sicherheitshalber auch „default_charset“ auf UTF-8 gesetzt werden, damit alle PHP-Skripte ohne explizite Angabe den richtigen Zeichensatz verwenden.

Damit ist die Umstellung fertig, aber Sie sollten jetzt noch einen Test machen. Loggen Sie sich dazu im TYPO3-Backend ein und ändern den Namen des Admins, zum Beispiel auf Müller. Dieser sollte sowohl im Backend als auch in phpMyAdmin mit einem „ü“ angezeigt werden. Wird irgendwo das „ü“ als „ü“ angezeigt, haben Sie vermutlich einen Schreibfehler im Install-Tool gemacht.

Umstellung einer vorhandenen Datenbank

Sollten Sie bisher noch keine fehlgeschlagenen Versuche gemacht haben, dann ist dies gar nicht so schwierig. Wichtig ist hier vor allem wieder die richtige Reihenfolge, damit nicht später zwei verschiedene Zeichensätze in der Datenbank sind. Dann wäre nämlich keine fehlerfreie Umwandlung eines Datenbank-Dumps mehr möglich. Als erstes müssen Sie, wie auch beim Neuanlegen beschrieben, mit phpMyAdmin die Kollation der Datenbank auf „utf8_general_ci“ umstellen. Auch hier muss TYPO3 umgestellt werden, aber auf jeden Fall erst, nachdem der Datenbank-Dump erstellt wurde: Bei MySQL 4.0 kann ein Dump mit der folgenden Zeile erstellt werden (USER, PASSWORT HOST und DB müssen durch die echten Daten ersetzt werden):

SHELL

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

Listing 1

Sollte die auf dem Zeichensatz „latin1“ basierende Datenbank in MySQL-Version 4.1 oder einer aktuelleren Version gespeichert sein und nur einen Zeichensatz verwenden, kann man den Dump mit dem zusätzlichen Parameter „--compatible=mysql40“ ohne Ausgabe der Kollation (wird für die Sortierung benötigt) erstellen. Sofern man den Kompatibilitätsmodus nicht einsetzt, muss man im Dump noch Charset und die 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_gene-ral_ci;“ werden.

Bitte beachte unsere Community-Richtlinien

4 Reaktionen
xtine7

Danke, gut zu wissen.
Habe nämlich zwei TYPO3-Installationen, beide auf UTF-8, beide zeigen Sonderzeichen korrekt an und verwende dieselbe Version der phpMyAdmin-Extension. Nur werden die Sonderzeichen eben einmal so „üöä“ und einmal so „üöä“ im PMA angezeigt.
Vielleicht liegt's dann ja auch an der Serverkonfiguration.

ursbraem

@xtine7 Eigentlich ersteres. Aber as kann von phpMyadmin abhängen, bei uns zeigt es die Umlaute falsch an, obwohl alles richtig läuft (weil wahrscheinlich in PMA charset falsch gesetzt ist, ist ja auch nur eine webapp)

xtine7

Nur um sicherzugehen:
Wie werden Umlaute in phpMyAdmin angezeigt, wenn alles korrekt funktioniert:
„üöä“ oder „üöä“?

Urs Bräm

Toller Artikel! Hat mir extrem geholfen. Danke.

Allerdings habe ich wiederholt festgestellt, dass Halbgeviertstriche und einfache (typographische) Anführungszeichen nicht sauber konvertiert werden. Auf Windows 7 sind sie ganz verschwunden, mit IE 6 auf XP sind sie Kästchen sichtbar. Ob das an iconv liegt?

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung