Entwicklung & Design

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

Mehrsprachige Websites erfordern einen gemeinsamen Zeichensatz für alle Sprachen. Schon zu Zeiten von MySQL 4.0 haben einige TYPO3-Entwickler versucht, UTF-8-kodierte Zeichen in der Datenbank zu speichern, obwohl diese UTF-8 noch gar nicht kannte. Jetzt, da MySQL 4.1 und 5 bei vielen Hostern angeboten wird, kann man die Daten standardkonform speichern. Oft gibt es aber Probleme bei der Umstellung. Dieser Artikel hilft sowohl beim Anlegen einer neuen Installation als auch beim Umstieg.

Die große Zahl unterschiedlicher Zeichensätze stammt aus einer Zeit, in der Speicher ein äußerst knappes Gut war. So besaß jeder Zeichensatz nur eine überschaubare Anzahl an Zeichen. Wollte man nun den Zeichensatz einer Website zum Beispiel von Deutsch nach Arabisch wechseln, musste man von „ISO 8859-1“ nach „ar-win1256“ umschalten. Diese Umstellung konnte aber nur für eine komplette Website gemacht werden. Innerhalb einer Seite oder innerhalb eines XML-Dokuments war dies nicht möglich. Es musste also ein gemeinsamer Zeichensatz für alle Sprachen geschaffen werden. Die Lösung heißt Unicode, wobei sich der Zeichensatz UTF-8 durchgesetzt hat. Dabei stehen bis zu 4 Byte für die Kodierung eines Zeichens zur Verfügung. Die Anzahl an möglichen unterschiedlichen Zeichen wuchs dadurch von 128 Zeichen bei 7 Bit oder 256 bei 8 Bit auf über eine Millionen an.

„Frisches“ TYPO3 mit UTF-8-Datenbank

Sofern Sie MySQL in der Version 4.1 oder 5.x einsetzen, können Sie eine aktuelle TYPO3-Version mit UTF-8 verwenden. Leider wird UTF-8 von TYPO3 noch nicht standardmäßig aktiviert. Zunächst müssen Sie TYPO3 daher mit einer UTF-8 Datenbank aufsetzen. Meist hat man bei einem Hoster schon ein fertiges TYPO3 ohne UTF-8-Unterstützung installiert. Die Datenbank zu konvertieren würde länger dauern, als sie neu zu erstellen. Dabei kommt es aber auf die richtige Reihenfolge an.

Installieren Sie zunächst die Extension „phpmyadmin“ [1]. Klicken Sie anschließend auf den Menüpunkt „phpmyadmin“ und dann direkt auf „Operationen“. Wählen Sie nun bei Kollation „utf8_general_ci“ aus. „utf8_unicode_ci“ ist zwar genauer, aber langsamer und unterscheidet sich im Deutschen nur bei SELECT-Abfragen, bei denen im Datensatz ein „ß“ vorkommt. Hier würde im einen Fall nach einem einfachen, im anderen Fall nach einem doppelten „s“ sortiert.

Durch Klick auf den Datenbanknamen über der Tabellenauflistung kommen Sie zur Ansicht der Tabellenstrukturen. Markieren Sie nun alle Tabellen mit „Alle markieren“ und wählen aus der Drop-Down-Box unten „markierte: => Löschen“ aus. Nach einer Sicherheitsabfrage werden die Tabellen endgültig gelöscht. Die Datenbank mit der voreingestellten Kollation ist anschließend aber immer noch vorhanden.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

4 Kommentare
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?

Antworten
xtine7
xtine7

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

Antworten
ursbraem
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)

Antworten
xtine7
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.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

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