Charset Probleme beseitigen

Probleme mit dem Charset, Characterset Encoding oder zu deutsch dem Zeichensatz sind so alt, wie die Erfindung der Schrift selbst. Und auch am Anfang des 3. Jahrtausend ist kein Ende in Sicht...

Wenn Ihre Internetseite also Probleme bei der Darstellung des Zeichensatzes hat, prüfen Sie bitte den Zeichensatz aller verwendeten Software auf Ihrem Webserver. Bei einer LAMP Installation könnten dies sein:

  1. Ihres Betriebssystems: Linux und Unix Systeme benutzen oft utf-8. Auf Linux  Betriebssystemen läßt sich das mit der Eingabe von < locale > überprüfen
  2. Ihrer Datenbank: MySQL verwendet standardmäßig den Zeichensatz latin1 (cp1252 West European) und die Sortierung latin1_swedish_ci, die gemäß den in Schweden und Finnland gültigen Regeln sortiert. Diese Standardeinstellungen sind für die Vereinigten Staaten und die meisten Länder Westeuropas angemessen (Mysql Dokumentation)
  3. Ihre PHP Installation: Die Werte default_charset und HTTP_ACCEPT_CHARSET in der php.ini. Überprüfen Sie gegebenenfalls auch die Einstellungen für < iconv >
  4. Ihre Websoftware sollte den richtigen Zeichensatz im Header anzeigen. z.B.:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. Und nicht zuletzt sollten die Dateien Ihrer Websoftware selbst auch in einem einheitlichen Zeichensatz codiert sein.

Dateien mit einheitlichem Zeichensatz per Script erzeugen

Oft entdecken wir im Source Code von Content Mangement Systemen, Webshopsoftware oder anderen Webanwendungen Dateien mit unterschiedlichem Zeichensatz. Dies führt bei der Darstellung von Sonderzeichen häufig zu Problemen.

In komplexen Projekten, besonders in der OpenSource Community entwickelt eben der eine auf Windows - iso-8859-1, der andere auf Linux - utf-8. Das ist eben die Freiheit, die wir haben :)  Unschön wird es dann für den Benutzer, der die Sonderzeichen nur noch vieleicht lesen kann....

Das zeitaufreibende Finden solcher Probleme nervte uns bisher gewaltig. Deswegen habe ich ein Bash Script geschrieben, um zumindest den Linux Usern die Möglichkeit zu geben, Code mit einheitlichem Zeichensatz zu erzeugen. Die meisten Webmaster haben ja doch irgendwo eine LAMP Umgebung.

Das Skript durchsucht vom Startverzeichnis aus rekursiv nach allen Dateien. Dateien, bei denen < file -i > einen Wert für den Charset ausgibt, können gelistet und auch in einen anderen Charset  konvertiert werden.

Skript charset_find_change downloaden