UTF-8

Seit Version 1.2 ist CMSimple_XH UTF-8 kodiert (seit CMSimple_XH 1.5 darf diese Einstellung nicht mehr geändert werden).

CMSimple 4 ist es sowieso.

Warum UTF-8?

UTF-8 hat sich quasi zum Standard für das Internet entwickelt. Daher wurde beschlossen die Kodierung von CMSimple_XH auf UTF-8 zu ändern, um bestmögliche Interoperabilität mit dem WWW zu gewährleisten.

Weiterhin sollte dieser Schritt bzgl. der Kodierung der Systemkern- und Plugin-Dateien besonders in mehrsprachigen Installationen helfen. Natürlich ist es möglich alle sprachspezifischen Dateien in der Standard-Kodierung dieser Sprache zu kodieren. Aber leider gibt es keine allgemeinen Standards in dieser Hinsicht. Z.B. werden die so genannten westliche Sprachen oft als ISO-8859-1 kodiert. Aber dieser Zeichensatz enthält nicht das „€“-Zeichen, so dass "International Organization for Standardization" (ISO-8859-15) eingeführt wurde. Aber unter Windows ist CP-1252 die übliche Kodierung. Diese drei Kodierungen sind sehr ähnlich, aber sie sind nicht identisch. Bei kyrillischen Sprachen ist die Situation noch schlimmer: ISO-8859-5, KOI-R, KOI-U und CP-1251 „stehen in Konkurrenz“.

Und bedenken Sie die Probleme bzgl. Dateien die gemeinsam für unterschiedliche Sprachen verwendet werden: diese dürften überhaupt keine nicht "American Standard Code for Information Interchange" (ASCII-Zeichen enthalten. Das ist kein großes Problem für eigentlich Programmdateien ("Hypertext Preprocessor" (PHP) und "JavaScript" (JS), aber sehr wohl für Daten von Plugins, die für alle Sprachen gemeinsam genutzt werden.

Daher erscheint es als langfristig beste Lösung für jeden, auf UTF-8 umzustellen.

Was ist ein BOM?

Der folgende Abschnitt ist recht technisch. Als CMSimple_XH Anwender muss man nicht alle Details verstehen. Die einzige Regel die Sie beachten sollten:

 BOM ist die Abkürzung von byte order mark (engl. Byte-Reihenfolge-Kennzeichnung). Das ist ein wichtiges Konzept für die Plattform-Interoperabilität von vielen multibyte encodings, z.B. UTF-16 und UTF-32. Es ist nötig, weil verschiedene Betriebssystem diese Kodierungen in unterschiedlichers Byte-Reihenfolge erwarten (big-endian/little-endian).

Aber für UTF-8 ist die Reihenfolge der Bytes für alle Plattformen gleich, so dass das BOM hier seine ursprüngliche Bedeutung verloren hat. Es wird allerdings von vielen Editoren verwendet, um eine Datei als UTF-8 zu kennzeichnen. Das ist vermutlich nicht die beste Idee, und der Unicode-Standard empfiehlt nicht, ein BOM in UTF-8 kodierten Dateien zu verwenden. Oftmals stört das BOM allerdings nicht, aber in PHP-Dateien und Dateien die von PHP inkludiert werden, verursacht das BOM ein Problem: das BOM wird sofort zum Browser geschickt, wenn die Datei verarbeitet wird. Da so die HTTP Antwort bereits begonnen wurde, wird das spätere Setzen von HTTP Headern unterdrückt, was unterschiedliche Fehlfunktionen des Skripts nach sich ziehen kann.
Dateien offline bearbeiten

Wenn Sie irgendeine PHP-Datei offline bearbeiten wollen, ist es erforderlich diese als UTF-8 ohne BOM zu speichern. Manche Editoren fügen das BOM automatisch ein, wenn die Zeichenkodierung UTF-8 ist (z.B. der Windows Editor); verwenden Sie daher einen Editor, der fähig ist Dateien als UTF-8 ohne BOM zu speichern (z.B. Notepad++) und stellen Sie sicher, das das auch geschieht. Andernfalls können Fehlfunktionen von CMSimple_XH auftreten; seit CMSimple_XH 1.5.4 wird dann die folgende Fehlermeldung angezeigt:

Cannot modify header information - headers already sent (output started at path/to/file.php:1)

Upgrade von ANSI kodierten Versionen

Seit CMSimple_XH 1.2 sind alle Versionen UTF-8 kodiert. Wenn Sie also von einer älteren Version upgraden wollen, müssen Sie alle Dateien die nicht ASCII-Zeichen enthalten, nach UTF-8 ohne BOM konvertieren. Sie können dies von Hand machen, ein Tool verwenden, dass es ermöglicht ein komplettes Projekt zu konvertieren, oder Sie können das Utf8migrator_XH Plugin verwenden (bitte beachten Sie, das es sich noch im BETA Stadium befindet).

Wenn Sonderzeichen in den Seitenüberschriften vorkommen, dann werden sich die URLs nach der Umstellung vermutlich geändert haben. Um diese weiterhin funktionieren zu lassen und um Robots über die Änderung zu informieren, können Sie die folgende index.php verwenden (im Installationsverzeichnis von CMSimple_XH und in allen Ordnern für Zweitsprachen):

 

 

http://www.cmsimple-xh.org/wiki/doku.php/de:utf8