Guite edited this page Nov 12, 2014 · 2 revisions

== UTF-8 == '''UTF-8''' ist eine Verfahren Zeichen aus verschiedenen Sprachen einheitlich darzustellen. Um verständlich zu machen, wie das geht und was die Vorteile davon sind, greif ich mal ein wenig in die Klamottenkiste:

Ende der 1960er Jahre sind eine ganze Menge schlauer Sachen erfunden worden: Die Mouse, das @-Zeichen und zum Beispiel auch '''ASCII'''. ASCII steht für American Standard Code for Information Interchange und bedeutet, dass es sich dabei um einen amerikanischen Standard für den Austausch von Zeichen handelt. ASCII hat festgelegt, dass bestimmte Bitfolgen für bestimmte Buchstaben stehen: {| border=1 class="wikitable" ! '''Buchstabe''' ! '''Bitfolge''' |- | A | 01000001 |- | B | 01000010 |- | C | 01000011 |- | .. | .. |}

Man hat hier nur 7-Bit definiert - das erste Bit in Standard 8-Bitsystemen ist damit immer eine 0. Damit kann man 128 verschiedene Buchstaben und Zahlen definieren. Den Amerikanern hat das gereicht - das Englische hat keine Umlaute. Im Deutschen möchte man aber gerne das Ö und im Dänischen das Ø benutzen. Das geht mit ASCII nicht.

'''Weiterlesen:''' [https://secure.wikimedia.org/wikipedia/de/wiki/ASCII ASCII bei Wikipedia]

Ende der 1990er hat man sich dann international zusammengesetzt und eine Standard entwickelt: '''ISO 8859''' nutzt das 8te Bit mit und verdoppelt damit die Zahl der möglichen Zeichen. Da selbst 128 zusätzliche Zeichen nicht reichen, um alle Zeichensysteme der Welt abzudecken, hat man mehrere Unterstandards entworfen. Die sind durch die Endnummer bezeichnet: ISO 8859-'''1''' umfasste in den ersten 128 Zeichen den normalen ASCII-Zeichensatz und darüber unter anderem die deutschen Umlaute (öäüÖÄÜ) das ß usw. Dieser Standard wurde dann durch ISO 8859-'''15''' ersetzt, um zum Beispiel das Euro-Zeichen (€) aufzunehmen.

'''Weiterlesen:''' [https://secure.wikimedia.org/wikipedia/de/wiki/ISO_8859 ISO 8859 bei Wikipedia]

Das hat dann ganz okay funktioniert, solange man nur einen solchen Zeichensatz auf einer Website benutzen musste. Man hat auf einer deutschen Internetseite einfach die Ausgabe so eingestellt, dass sie ISO 8859-15 ausgibt und konnte damit hervorragend deutsche, aber zum Beispiel auch dänische Texte anzeigen lassen. Es ist aber vollkommen unmöglich damit Chinesisch oder ähnliche abgefahrene Sachen anzuzeigen. Dazu benötigt man mehr Platz für Zeichen.

Hier setzt UTF-8 an: UTF-8 nutzt ein bis vier 8-Bit-Folgen. Einfachstes Beispiel: Es wird nur eine 8-Bitfolge genutzt, dann entsprechen die Bitmuster ASCII. Das wären theoretisch über 4 Billionen Zeichen möglich. Das wird aber wieder eingeschränkt, so dass aber immerhin noch 1.114.112 Möglichkeiten zur Verfügung stehen. Ein Beispiel dafür, was damit jetzt möglich ist, zeigt der [http://www.columbia.edu/kermit/utf8.html UTF-8-Sampler]

'''Weiterlesen:''' [https://secure.wikimedia.org/wikipedia/de/wiki/Utf-8 UTF-8 bei Wikipedia]

Beliebt ist UTF-8 in vielen modernen Softwareanwendungen gerade dann, wenn verschiedene System interagieren. Viele APIs geben UTF-8 aus, weil es dann nicht zu Schwierigkeiten durch unterschiedliches Encoding kommen kann.

=== UTF-8 in Zikula ===

Seit der Version 1.2 unterstützt auch Zikula UTF-8 in der Standardinstallation. Bei einem Upgrade einer älteren Site wird die Datenbank auf UTF-8 umgestellt.

Das einzige, was es im Umgang mit UTF-8 zu beachten gibt ist, dass man den eigenen Texteditor auf UTF-8 umstellt. Das sind die guten Editoren meist ohnehin schon. Wer aber seine Site aufruft und anstelle der Sonderzeichen �-Symbole sieht, weiß dass da noch Dateien ISO-Codiert sind. Das können sowohl alte Define-basierte Sprachdateien sein oder Templates in denen Ausgaben fest einprogrammiert sind.

Wenn Du so ein � siehst, musst Du Dir überlegen, woher das Wort kommt, in dem das Sonderzeichen nicht dargestellt wird. Die Datei lädst Du runter, öffnest sie in Deinem Editor, stellst die Codierung auf UTF-8 um, änderst den Umlaut, speicherst und lädst die Datei neu hoch. Dann sollte alles korrekt dargestellt werden.

Wer SSH-Zugriff auf seinen Webserver hat, kann auch alle Dateien auf einmal konvertieren lassen:

find . -name "*.php" -exec iconv -f ISO-8859-15 -t UTF-8 {} -o {} \;
find . -name "*.htm" -exec iconv -f ISO-8859-15 -t UTF-8 {} -o {} \;
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.