Auf UTF-8 umstellen

Diese Anleitung beschreibt ein Update auf UTF-8 ab der Shopversion 4.1.1. Ältere eShopversionen können nicht auf diesen Zeichensatz umgestellt werden.

Update-Dateien

Enterprise Edition

5.3.0 - 5.3.x: OXID_UTF8UPDATE_EE_5.3.0.zip
5.2.0 - 5.2.x: OXID_UTF8UPDATE_EE_5.2.0.zip
5.1.0 - 5.1.x: OXID_UTF8UPDATE_EE_5.1.0.zip
5.0.0 - 5.0.x: OXID_UTF8UPDATE_EE_5.0.0.zip
4.6.0 - 4.6.x: OXID_UTF8UPDATE_FOR_4.6.0.zip
4.5.1 - 4.5.x: OXID_UTF8UPDATE_EE_4.5.1-4.5.x.zip
4.5.0: OXID_UTF8UPDATE_EE_4.5.0.zip
4.4.0 - 4.4.x: OXID_UTF8UPDATE_EE_4.4.0.zip
4.3.0 - 4.3.2: OXID_UTF8UPDATE_EE_4.3.0.zip
4.1.6 - 4.2.0: OXID_UTF8UPDATE_EE_4.1.6-4.2.0.zip
4.1.1 - 4.1.5: OXID_UTF8UPDATE_EE_4.1.1-4.1.5.zip

Professional Edition

4.10.0 - 4.10.x: OXID_UTF8UPDATE_PE_4.10.0.zip
4.9.0 - 4.9.x: OXID_UTF8UPDATE_PE_4.9.0.zip
4.8.0 - 4.8.x: OXID_UTF8UPDATE_PE_4.8.0.zip
4.7.0 - 4.7.x: OXID_UTF8UPDATE_PE_4.7.0.zip
4.6.0 - 4.6.x: OXID_UTF8UPDATE_FOR_4.6.0.zip
4.5.1 - 4.5.x: OXID_UTF8UPDATE_PE_4.5.1-4.5.x.zip
4.5.0: OXID_UTF8UPDATE_PE_4.5.0.zip
4.4.0 - 4.4.x: OXID_UTF8UPDATE_PE_4.4.0.zip
4.3.0 - 4.3.2: OXID_UTF8UPDATE_PE_4.3.0.zip
4.1.6 - 4.2.0: OXID_UTF8UPDATE_PE_4.1.6-4.2.0.zip
4.1.1 - 4.1.5: OXID_UTF8UPDATE_PE_4.1.1-4.1.5.zip

Community Edition

4.10.0 - 4.10.x: OXID_UTF8UPDATE_CE_4.10.0.zip
4.9.0 - 4.9.x: OXID_UTF8UPDATE_CE_4.9.0.zip
4.8.0 - 4.8.x: OXID_UTF8UPDATE_CE_4.8.0.zip
4.7.0 - 4.7.x: OXID_UTF8UPDATE_CE_4.7.0.zip
4.6.0 - 4.6.x: OXID_UTF8UPDATE_FOR_4.6.0.zip
4.5.1 - 4.5.x: OXID_UTF8UPDATE_CE_4.5.1-4.5.x.zip
4.5.0: OXID_UTF8UPDATE_CE_4.5.0.zip
4.4.0 - 4.4.x: OXID_UTF8UPDATE_CE_4.4.0.zip
4.3.0 - 4.3.2: OXID_UTF8UPDATE_CE_4.3.0.zip
4.1.6 - 4.2.0: OXID_UTF8UPDATE_CE_4.1.6-4.2.0.zip
4.1.1 - 4.1.5: OXID_UTF8UPDATE_CE_4.1.1-4.1.5.zip


1. Systemvoraussetzungen für UTF-8 prüfen

  • Loggen Sie sich in den Administrationsbereich ein

  • Gehen Sie zu Service ‣ Systemvoraussetzungen

  • Überprüfen Sie, ob mbstring und UTF-8 Unterstützung grün sind

Systemvoraussetzungen UTF-8

Die Umstellung auf UTF-8 funktioniert nur, wenn die oben genannten Systemvoraussetzungen erfüllt sind. Trifft dies nicht zu, kann das Update Ihren eShop beschädigen!

2) Shop temporär offline setzen

Der Shop muss für die Dauer des Updates offline sein. Dazu wird die index.php im Hauptverzeichis Ihres eShops ersetzt.

  • Machen Sie eine Sicherungskopie der index.php, die sich im Hauptverzeichnis Ihres Shops befindet.

  • Erstellen Sie eine neue index.php mit folgendem Inhalt:
    <?php echo "Der eShop ist zur Zeit offline wegen Wartungsarbeiten. Bitte versuchen Sie es später noch einmal.\n";?>

  • Überschreiben Sie die index.php mit der neuen index.php.

Rufen Sie Ihren eShop im Browser auf. Die Wartungsarbeiten-Nachricht sollte erscheinen.

3. Sicherungskopie der Datenbank anlegen

Erstellen Sie eine Sicherungskopie Ihrer Datenbank.

4. Datenbank auf UTF-8 umstellen

Als nächstes wird die Datenbank auf UTF-8 umgestellt. Die entsprechenden Datenbank-Kommandos finden Sie in der.sql-Datei im Updatepaket. Bevor Sie die Befehle in die Datenbank einspielen, müssen Sie die Datei bearbeiten. Ersetzen Sie _NAME_OF_DB_ mit dem Namen Ihrer Datenbank.

Sie können die Datenbank-Befehle auf mehrere Arten ausführen:

  • Viele Web-Hoster bieten phpMyAdmin zur Datenbankadministration an. In diesem Tool können Sie die Import-Funktion verwenden.

  • Wenn Sie Kommandozeilenzugriff auf die Datenbank haben, können Sie die update.sql per Kommandozeile aufrufen.

Die Befehle sind für die Standard-Datenbank des OXID eShop. Wenn Sie Änderungen an der Datenbank vorgenommen haben, müssen diese manuell auf UTF-8 umgestellt werden.

5. Sprachdateien überprüfen

In den Sprachdateien muss angegeben werden, welcher Zeichensatz verwendet wird. Alle Sprachdateien in den folgenden Verzeichnissen müssen überprüft werden. {locale} steht dabei für de, en, fr usw.

Sprachdateien für den Administrationsbereich: /application/admin/locale/
Sprachdateien für das Frontend: /application/flow/locale/

  • Überprüfen Sie, ob in jeder Sprachdatei der Zeichensatz angegeben wird, z.B.: ‚charset‘ => ‚ISO-8859-15‘,

  • Falls der Zeichensatz nicht angegeben ist, werden die Sprachdateien ignoriert. Damit die Sprachdateien korrekt funktionieren, müssen Sie mit einem Texteditor den Zeichensatz der Datei herausfinden. Fügen Sie die Zeichensatz-Information in die Sprachdatei ein:

$aLang = array(
'charset' => 'ZEICHENSATZNAME',

Folgende Zeichensätze werden von PHP unterstützt: ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, KOI8-R, BIG5, GB2312, BIG5-HKSCS, Shift_JIS, EUC-JP

6. Eigene Erweiterungen überprüfen

Wenn Sie den OXID eShop mit eigenen Dateien erweitert haben, müssen Sie den Zeichensatz dieser Dateien überprüfen. Alle Dateien außer den Sprachdateien müssen in ISO-8859-15 kodiert sein. Ansonsten kann es zu Problemen mit Sonderzeichen kommen.

  • Überprüfen Sie, ob alle Erweiterungen (außer den Sprachdateien) in ISO-8859-15 kodiert sind.

7. update.php ausführen

  • Kopieren Sie die update.php aus dem Update-Paket ins Hauptverzeichnis Ihres Shops.

  • Rufen Sie das Update-Skript mit ihrem Browser auf (www.ihreshop.de/update.php).

  • Im ersten Schritt wird der derzeit verwendete Zeichensatz automatisch erkannt.

  • Klicken Sie auf Proceed, um das Update auszuführen.

  • Auf der nächsten Seite werden die Ergebnisse des Updates angezeigt. Überprüfen Sie, ob alle Sonderzeichen korrekt gespeichert sind (besonders die Währungseinstellungen, vgl. Bugtracker-Eintrag #579). Ändern Sie eventuell falsche Sonderzeichen im Administrationsbereich, nachdem Sie das Update beendet haben.

8. config.inc.php aktualisieren

  • Überprüfen Sie, ob in der config.inc.php im Hauptverzeichnis Ihres Shops die Einstellung $this -> iUtfMode vorhanden ist.

  • Falls nicht vorhanden, fügen Sie folgende Zeile zur config.inc.php hinzu:
    $this -> iUtfMode = '1'; // 1 - enables UTF-8, 0 - disables UTF-8

  • Falls vorhanden, ändern Sie $this -> iUtfMode = '0'; in $this -> iUtfMode = '1';

9. Temporäre Dateien löschen

  • Löschen Sie alle Dateien, die sich im Verzeichnis /tmp befinden.

10. index.php wiederherstellen

  • Kopieren Sie die Sicherungskopie der index.php, die Sie erstellt hatten, zurück ins Hauptverzeichnis Ihres Shops.

11. Fertigstellen

Das Update auf den Zeichensatz UTF-8 ist fertig.