Zeichensatz

In diesem Artikel finden sie Hilfestellungen zu verschiedenen Problemen, die im Zusammenhang von ClanSphere mit UTF-8 auftreten können.



Grundlagen

Zeichencodierung

Um verschiedenste Zeichen darstellen zu können werden diese unterschiedlich digital codiert, d.h. jedem Zeichen wird ein bestimmter Code zugewiesen. Dies geschieht innerhalb sogenannter Zeichensätze

Zeichensätze

Je nachdem, in welchem Sprachraum man sich befindet, gibt es ganz verschiedene Zeichensätze. So sind innerhalb der ISO 8859 Norm zurzeit 15 Verschiedene 8-Bit-Zeichensätze festgelegt, unter anderem ISO 8859-15 für Latin-9, Westeuropäisch. Allerdings gibt es auch einen internationalen Standard, Unicode genannt. UTF-8 ist die am weitesten verbreitete Codierung für Schriftzeichen des Unicode-Standards.

Zeichensätze kann man mit einem Vorrat von Zeichen vergleichen, deshalb überschneiden sich die Zeichensätze sehr stark. Die nationalen Sonderzeichen sind allerdings von einander verschieden, oder anders codiert.

Bei Änderung des Zeichensatzes kann es dadurch vorkommen, dass z.B. Sonderzeichen anders codiert sind und deshalb fehlerhaft dargestellt werden.


Clansphere

Mit der Version 2009.0 RC3 wurde bei Clansphere einiges, was Zeichensätze angeht, umgestellt. Daher sind ab dieser Version einige Änderungen vorzunehmen.

setup.php

Ab Version 2009.0 RC3 muss der verwendete Zeichensatz in der setup.php angegeben werden, damit ClanSphere korrekt ausgeführt wird.

PHP 4.X -> Zeichensatz ISO-8859-15 weiter verwenden und in der 'setup.php' angeben, kein UTF-8
$cs_main['charset'] = 'ISO-8859-15';

PHP 5.X -> Wahl zwischen dem oben genannten und UTF-8, am besten den bisherigen verwenden um Kompatibilitätsprobleme zu vermeiden
$cs_main['charset'] = 'UTF-8';

Informationen dazu finden Sie auch im Artikel zum Update von 2008.x auf 2009.0.

Datenbank (MySQL)

MySQL unterstützt UTF-8 seit Version 4.1, bei älteren Versionen werden die Daten daher weiterhin mit dem voreingestellten Encoding ausgeliefert.
Lösung: Provider um ein Update bitten, da der Nachfolger 5.0 schon seit Jahren stabil ist.

Webserver (Apache)

Der Apache-Webserver liefert bereits einen Zeichensatz aus, oder im Template sind die Zeichensatz-Informationen fehlerhaft oder nicht vorhanden.
Lösung: Die Datei .htaccess im ClanSphere Hauptverzeichnis bearbeiten bzw. erstellen und die folgende Zeile hinzufügen:
AddDefaultCharset UTF-8

PHP

PHP 4 und Unicode verträgt sich so schlecht, dass ClanSphere dies, um noch größere Probleme und damit Arbeit für euch und uns zu vermeiden, verweigert. Wer Unicode benutzen möchte (was wir sehr empfehlen) sollte auf PHP 5 wechseln. ClanSphere läuft seit dem Projektbestehen anstandslos mit allen PHP 5 Versionen. Das kommende PHP 5.3 funktionierte in internen Tests ebenfalls reibungslos.

Template

Auch HTML kennt verschiedene Zeichensätze, weshalb es wichtig ist, auch im Template den richtigen Zeichensatz festzulegen. Um jeweils den richtigen Zeichensatz direkt von ClanSphere ausgeben zu lassen, darf als Zeichnsatzdefinition im Head-Bereich der HTML-Seite nur die folgende Zeile stehen. Alle anderen Zeichensatzdefinitionen müssen gelöscht werden!
<meta http-equiv="Content-Type" content="text/html; charset={func:charset}" />
Wird dem Browser ein falscher Zeichensatz mitgeteilt, kann die Seite nicht richtig dargestellt werden.

In XHTML-Dateien, welche XML-Dateien sind, ist es möglich, den Zeichensatz über die folgende Zeile vor der Doctype-Declaration anzugeben:
<?xml version="1.0" encoding="{func:charset}" ?>

Dies ist ab XHTML 1.0 möglich, ab XHTML 1.1 wird diese Zeile verpflichtend.

 Quelltext betrachten   Druckversion   Versionen 
Letzte Änderung: 19.03.2010 01:21 Version 3.0.1