Benutzer-Werkzeuge

Webseiten-Werkzeuge


webedition:administration:db-connection-charset-problem

Das Problem des Verbindungszeichensatzes in webEdition

Das Problem tritt hauptsächlich in UTF-8 Installationen auf, die mit einer WE-Version vor 6.1.0 installiert wurden.

Ein reines Update auf Version 6.1.0 oder später behebt das Problem nicht!

Symptom

In einer WE-Installation mit Oberfläche *_UTF-8 (z.B. Deutsch_UTF-8) und Standard-Zeichensatz UTF-8 sowie einer Datenbank die ebenfalls auf utf8 eingestellt ist (DB-Kollation z.B. utf8_general_ci) werden bei Betrachtung der Daten mit einem externen Tool (z.B. phpMyAdmin) alle Umlaute und Sonderzeichen falsch dargestellt (z.B. € als "â,¬").

Auswirkungen

  • Probleme bei der Nutzung von externen Tools (z.B. phpMyAdmin, andere externe Zugriffe auf die DB, …)
  • Probleme beim Umzug zwischen verschiedenen Systemen (Einspielen eines Backups)

Ursache

webEdition setzt bei der Verbindungsaufnahme zur Datenbank nicht automatisch SET NAMES utf8. Dadurch werden alle Daten bei der Übertragung zur und von der Datenbank in einen in PHP einkompilierten Zeichensatz umgewandelt. Dies ist aus historischen Gründen bei den meisten Providern eine Variation von latin1 (ein ISO-Zeichensatz). Da dies beim Senden und Empfangen von Daten zur/von der DB geschieht, werden innerhalb von webEdition alle Zeichen korrekt dargestellt.

In webEdition läßt sich ein SET NAMES über eine Systemeinstellung erzwingen: Menü→Extras→Einstellungen, dort Tab System, Feld Verbindungszeichensatz. Da bis zur Version 6.1.0 weder Tarball-Setup noch OnlineInstaller dieses Feld setzen, ist dies jedoch bei den meisten Installationen ein leeres Feld.

Der Verbindungszeichensatz darf nicht nachträglich gesetzt werden!

Würde der Verbindugszeichensatz in einer webEdition Installation mit vorhandenen Daten nachträglich gesetzt, so würden die vorhandenen Daten aus der DB falsch interpretiert, alle Umlaute und Sonderzeichen also falsch dargestellt.

Alle Umlaute und Sonderzeichen müssen dann von Hand innerhalb der WE-Oberfäche korregiert werden. Diese neuen Daten werden dann aber korrekt abgespeichert.

Nachträgliches Umstellen einer Installation auf korrekten Verbindungszeichensatz

Dies kann nur durch eine vollständige Neuinstallation von webEdition (mit Setzen des Verbindungszeichensatzes über OnlineInstaller 2.5 oder den Tarball-Setup der Version 6.1.0 oder später) mit anschließenden Einspielen eines Backups der alten WE-Version erfolgen.

In diesem Fall werden die Daten dann korrekt mit utf8 an die DB übertragen.

Aus Sicherheitsgründen sollten dabei niemals eine vorhandene WE-Installation überschrieben werden, sondern eine Neuinstallation in einem anderen Verzeichnis und anderer DB (ober mit neu gesetztem Tabellenprefix) erfolgen!

Weiterführende Informationen

webedition/administration/db-connection-charset-problem.txt · Zuletzt geändert: 2015/12/22 16:30 von Marc Krämer

Recent changes RSS feed