TYPO3: Datenbank umstellen von Latin-1 auf UTF-8

Die Kodierung UTF-8 ist heute standardmäßig bei einer Installation von TYPO3 eingestellt, doch vor gar nicht allzu langer Zeit bestimmte ein anderer Code die Zeichendarstellung auf Webseiten: ISO/IEC 8859-1, alias Latin-1. Wie Sie eine alte TYPO3-Installation von Latin-1 auf UTF-8 umstellen können, beschreiben wir im heutigen Blog-Beitrag.

    Speicherplatz war vor einigen Jahren noch sehr knapp bemessen, darum wurden nur die für die Besucher relevanten Zeichen zur Verfügung gestellt. Latin-1 stellt dabei Zeichen des westeuropäischen Raums dar, während Latin-3 z. B. für südeuropäische Sprache erstellt wurde.

    Da aber die Bedeutung von Mehrsprachigkeit auf Internetseiten bis heute immer mehr zugenommen hat, und Betreiber zum Teil gleichzeitig Chinesisch und Arabisch abbilden müssen, werden Zeichen inzwischen mit UTF-8 (Abkürzung für 8-bit UCS Transformation Format) kodiert, welches bis zu 4 Byte unterstützt und somit alle unterschiedlichen Zeichen der verschiedenen Sprachen darstellen kann.

    Doch was ist zu tun, wenn eine alte TYPO3-Installation nach mehrjähriger Laufzeit um Mehrsprachigkeit ergänzt werden soll? Liegen die Datenbanktabellen hier im Latin-Charset vor, kommt es zu Anzeigefehlern im ausländischen Zeichensatz.

    typo3 schulungen

    Zwar gibt es für TYPO3 Extensions, welche eine Konvertierung der Tabellen durchführen, oftmals werden hier jedoch nur bestimmte Tabellen umgestellt, was im Nachhinein zu Problemen führen kann. Wie Ihr die Datenbank selbst umstellen könnt, erfahrt Ihr in der folgenden Beschreibung. Für diesen Vorgang ist es von großem Vorteil, wenn ein SSH-Client vorliegt, damit Ihr Zugriff auf einige Shell-Befehle habt. Bei Fragen zur Umstellung könnt Ihr euch natürlich gerne im Mittwald Kundenservice melden! :-)

    Kommentare

    1. Gravatar
      Marius am

      Vielen Dank für die Anleitung, hab sonst immer erst die DB gelöscht und mit UTF8 neu erstellt, was überhaupt nicht funktioniert hat. Endlich läufts!

      Antworten
    2. Kristina Dahl am

      Hallo Herr Kunig,

      können Sie sich bitte einmal per Ticket melden und uns mitteilen, um welchen Account es sich handelt? Dann können wir konkret prüfen, woran es liegt.

      Vielen Dank und viele Grüße

      Kristina Dahl

      Antworten
    3. Gravatar
      Kurt Kunig am

      1.) Wenn ich mit Putty den mysqldump absetze bekomme ich eine Fehlermeldung – keine Berechtigung!? – In welchem Pfad muss ich den Befehl absetzen?
      2.) Diese Ext. convert2utf8 habe ich auch mal installiert, sehe aber den Aufruf nirgends!? (Habe TYPO3 V4.5 im Einsatz!)

      Antworten
    4. Gravatar
      Stefano am

      Im iconv Aufruf ist ein Fehler drin. Richtig sollte sein:
      iconv -f iso-8859-1 -t utf-8 dump.sql > dump-iconv.sql

      (utf-8 anstelle utf8)

      Beste Grüße
      Stefano

      Antworten
    5. Gravatar
      Paulina | SiteGefühl am

      Super Anleitung, danke! Mit meinem Terminal (Mac) und Mittwald hat der erste Befehl aber nur so funktioniert (ohne Leerzeichen zwischen Host, Passwort und User).

      mysqldump –opt -Q -uUSER -pPASSWORT -hHOST DB > dump.sql

      Antworten
    6. Kristina Dahl am

      @franc

      Du kannst natürlich den Editor deiner Wahl verwenden, um eine solche Konvertierung durchzuführen, hier besteht kein Problem.

      Von der Extension convert2utf8_1.0.6.t3x raten wir jedoch generell ab, da nicht sichergestellt werden kann, dass auch wirklich jede Tabelle konvertiert wird.

      Antworten
    7. Gravatar
      franc am

      Ich habe es auf meinem Ubuntu LTS 8.04 Server mit MySQL 5.0.51 (und PHP 5.2.4-2ubuntu5.14) anders gemacht, mit MySQL Query Browser 1.2.17 (über SSH-Tunnel direkt auf der Typo3-DB, kann man aber sicher auch nur mit phphMyAdmin machen), EditPadPro7 (kann utf8 encoding, wie jeder heutige richtige Editor) und phpMyAdmin 3.2.2:

      -die Typo3 Extension convert2utf8_1.0.6.t3x installiert

      -mit phpMyAdmin die Seite komplett exportiert (gesichert) in mysite.sql (Text file character encoding: utf8)

      -in mysite.sql nach „character set latin1“ gesucht und mit „character set utf8“ ersetzt. Unter mysite-utf8.sql gespeichert (Text file character encoding: utf8)

      -mit Hilfe der oben genannten Extension alles auf utf8 umgestellt, also im Kontextmenü der Wurzelseite auf „Convert to UTF-8“ geklickt und dort dann alles markiert. Jetzt sind auf der Seite alle Umlaute verhagelt.

      -die korrigierte Sicherung mysite-utf8.sql mit dem MySQL Query Browser zurückgespielt, das dürfte aber auch mit phpMyAdmin funktionieren. Jetzt sind alle Umlaute wieder da und alle Felder sind auf utf8 gesetzt.

      Die Collation habe ich nicht gesetzt, die wird anscheinend automatisch gesetzt, wenn man im SQL nur das „character set utf8“ mitgibt.

      Antworten
    8. Gravatar
      franc am

      Kann ich statt iconv auch einen beliebigen Editor nehmen, der mir latin1 in utf8 konvertieren kann (z.B.) EditPadPro?

      Antworten

    Kommentar hinzufügen