Zeichencodierung

Immer wieder kommt es vor, das Umlaute im Adminbereich oder dem Katalog nicht richtig dargestellt werden. Das liegt dann an der Zeichencodierung.

Mögliche Zeichensätze, die im deutschsprachigen Raum eingesetzt werden sind UTF-8 und ISO-8859-1 (latin1). In diesen beiden Zeichensätzen sind Umlaute unterschiedlich codiert.

Texte, die aus der Datenbank kommen, werden in einem bestimmten Zeichensatz an PHP übertragen, und dann an den Browser des Kunden. Dabei wird in der HTML-Seite dem Browser mitgeteilt, mit welchem Zeichensatz der Text codiert ist.

Wenn also nun die Datenbank den Text in UTF-8 an PHP sendet und PHP dem Browser mitteilt, das der Text in ISO-8859-1 codiert ist, werden die Umlaute falsch dargestellt. Es muß also sicher gestellt werden, das der Zeichensatz, der dem Browser mitgeteilt wird, der gleiche ist, mit dem MySQL die Daten an PHP gesendet hat.

Dabei ist es völlig unerheblich, mit welchem Zeichensatz MySQL die Daten in der Tabelle speichert und welche Collation die Tabelle nutzt. Wichtig allein ist der Zeichensatz, mit dem MySQL die Daten an PHP überträgt. Dieser Zeichensatz wird in der MySQL Variablen character_set_client gesetzt. Wenn nichts anderes vorgegeben wird, wird dieser Zeichsatz für die Kommunikation genutzt.

Da osCommerce™ keinen Zeichensatz für die Kommunikation definiert, und man auf die Variable  character_set_client von MySQL in der Regel keinen Zugriff hat, muß man herausfinden, welcher Zeichensatz für die Kommunkation genutzt wird, und diesen das in den osCOmmerce™ Konfigurationsdateien einstellen.

Für jede installierte Spache gibt es eine Sprachdatei unter catalog/includes/languages. Wer z.B. die deutsche Spracherweiterung installiert hat, findet hier eine Datei german.php in der man den Zeichensatz einstellen kann, der an den Browser gesendet wird.

// charset for web pages and emails
//define('CHARSET', 'utf-8');
define('CHARSET', 'iso-8859-1');

In diesem Fall ist der Zeichsatz iso-8859-1 (latin1) eingestellt, da MySQL die Daten in diesem Zeichensatz an PHP sendet. Wenn MySQL und PHP über UTF-8 kommunizieren, muß hier utf-8 als Zeichensatz gesetzt werden.

Die gleiche Einstellung gilt analog für die Sprachdateien unter catalog/admin/includes/languages.

Wenn Sie den Zeichensatz herausfinden wollen, mit dem MySQL die Daten an PHP übergibt, können Sie sich im Downloadbereich das Script zeichensatz.php herunterladen. Speichern Sie das Script im Order catalog auf ihrem Webserver und rufen sie das Script über http://www.meinServer.de/catalog/zeichensatz.php auf.

Der Zeichensatz, den Sie in den Sprachdateien verwenden müssen, wird ihnen dann angezeigt.

Design by Joomla 1.6 templates