Zeichencodierung

Aus SELFHTML-Wiki
(Weitergeleitet von Zeichenkodierung)
Wechseln zu: Navigation, Suche
Charcode-Icon.svg

Im Computerbereich gibt es verschiedene Zeichensätze und Zeichencodierungen. Der Zeichensatz, also die Menge aller verwendbaren Zeichen, ist für HTML-Dokumente generell Unicode. Um ein konkretes Dokument zu erstellen, müssen Sie dafür eine Zeichencodierung verwenden. Die Zeichencodierung legt fest, wie ein bestimmtes Zeichen in Bits und Bytes abgebildet wird.

Wenn Sie nichts weiter unternehmen, werden Ihre Werkzeuge (Editor, Browser) eine voreingestellte Codierung verwenden. Das ist insofern problematisch, als dass alle beteiligten Systeme nun raten müssen, in welcher Codierung ein Dokument vorliegt. Das ist aber nicht immer eindeutig erkennbar. Es ist deshalb eine gute Idee, für Klarheit zu sorgen.

  1. Bytes und Buchstaben
    • ASCII
    • ISO-8859-Familie
  2. Unicode - der universale Code
    • UTF-16
    • UTF-32
    • UTF-8
  3. Unicode in der Praxis
    • im Editor
    • Meta-Angabe im Dokument
    • HTTP-Header
  4. Emojis und Emoticons
    • Darstellung
    • zugängliche Emoticons
  5. Zeichencodierung in MySQL


Empfehlung: Verwenden Sie für neue Projekte UTF-8 als Zeichencodierung, wenn überwiegend westliche Sprachen verwendet werden (bei asiatischen Sprachen ist oft UTF-16 günstiger). Stellen Sie sicher, dass Sie diese Zeichencodierung nicht nur angeben, sondern das Dokument auch wirklich in diesem Format abspeichern. Lesen Sie dazu den Ratschlag zur praktischen Anwendung.
Beachten Sie: Eine korrekt verwendete Zeichencodierung oder eine Ersatzschreibweise für einzelne Zeichen bedeutet nicht zwangsläufig, dass alle Zeichen korrekt dargestellt werden. Es müssen u. U. auch die Schriftarten auf dem Computer installiert werden, die für diese verwendeten Zeichen Darstellungsvorschriften enthalten. Fehlen diese, erscheinen statt der Schriftzeichen Kästchen oder Ähnliches auf dem Bildschirm. Als Autor von Webseiten können Sie Ihrer Webseite die passenden Schriften mitliefern.

Eine Zeichencodierung beschreibt die konkrete Zuordnung eines Codepoints zu einem Byte oder einer Bytesequenz. UTF-8 und UTF-16 sind beispielsweise Codierungen für den Zeichensatz Unicode.

Einige Software-Hersteller bezeichnen Zeichencodierungen mit einem historisch gewachsenen Synonym, nämlich der „Zeichensatz-“ oder kurz „Zeichentabelle“ (code page bzw. codepage). So bezeichnet beispielsweise Microsoft im seinem Windows-Betriebssystem die Zeichencodierung UTF-8 als „Codepage 65001“ oder kurz „CP65001“.

Wenn Sie sich mit Zeichencodierung noch nicht weiter beschäftigt haben, ist es sicherlich am besten, wenn Sie zuerst die auf dieser Seite beschriebenen Grundlagen zur Zeichencodierung lesen und sich anschließend die konkreten Beschreibungen zur Umsetzungen in den einzelnen Techniken der nachfolgenden Links anschauen.




Begrifflichkeiten

Für die Zeichen-Problematik gibt es eine Reihe Begrifflichkeiten, die allerdings oftmals falsch angewendet werden. Nachfolgend der Versuch einer Aufklärung:

Zeichensatz

Ein Zeichensatz (englisch: character set, charset) ist die Gesamtheit der zur Verfügung stehenden Zeichen. Ein Zeichensatz ist ein eher abstraktes Gebilde, das nur die Zeichen selbst und eine Reihenfolge beschreibt, nicht jedoch eine konkrete Abbildung auf Byte-Werte. Das ist Aufgabe der Zeichencodierung.

Beispielsweise ist Unicode ein Zeichensatz, UTF-8 hingegen ist eine Zeichencodierung.

Zur Blütezeit der 1-Byte-Codierungen (für Zeichensätze mit bis zu 256 Zeichen) wurde die Unterscheidung zwischen Zeichensatz und Zeichencodierung in der Praxis oft vernachlässigt. Die Position eines Zeichens im Zeichensatz und seine Codierung ist mit den Werten von 0 bis 255 (= 1 Byte) immer gleich, und auch eindeutig in beide Richtungen. Bei Zeichensätzen mit mehr als 256 Zeichen gibt es jedoch mehrere Verfahren, sie auf Byte-Werte abzubilden, weswegen die Unterscheidung zwischen Zeichensatz und Zeichencodierung wichtig geworden ist.

Der Zeichensatz für HTML-Dokumente ist seit Version 4.0 stets Unicode. Die Zeichencodierung eines konkreten Dokuments (Datei) ist beispielsweise UTF-8 oder ISO-8859-1. Mit einer 1-Byte-Codierung wie ISO-8859-1 können nur deren Zeichen direkt eingefügt werden. Über die Escaping-Mechanismen Numerische Zeichenreferenz und teilweise Entitys lassen sich alle in Unicode definierten Zeichen in ein HTML-Dokument einfügen.

Statt Zeichensatz werden oft die Begriffe Font, Schriftart oder Zeichencodierung verwendet, obwohl diese genau genommen etwas anderes bedeuten. Auch wird die englische Übersetzung charset an vielen Stellen verwendet, an denen korrekterweise encoding (Codierung) stehen müsste. Das betrifft vor allem den Parameter charset im HTTP-Header Content-type und im gleichnamigen HTML-Meta-Element. Im Vorspann einer XML-Datei wird hingegen richtigerweise encoding verwendet.


Codepoint

Zeichen in einem Zeichensatz (z. B. ASCII oder Unicode) werden in einer bestimmten Reihenfolge in einem Coderaum (code space) angeordnet. Die Position eines Zeichens ist der Codepoint (zu Deutsch etwa „Codeposition“). Ein Zeichensatz mit Codepoints ist ein codierter Zeichensatz (coded character set).

Ein Unicode-Zeichen wird oftmals in der Form U+xxxxxx beschrieben, zum Beispiel wenn aus der bildlichen Darstellung nicht eindeutig auf ein Zeichen geschlossen werden kann. Das xxxxxx ist die hexadezimale Codepoint-Angabe aus bis zu sechs Ziffern. Auch für Numerische Zeichenreferenzen in HTML wird der Codepoint in dezimaler oder hexadezimaler Schreibweise verwendet.

Beispiel: € = Codepoint U+20AC (dez. 8364) = € oder €


Schriftart

Für die grafische Darstellung von Zeichen wird eine Schriftart verwendet, die in der Regel eine in sich konsistente Gestaltung aufweist, beispielsweise für die Strich-Dicke oder Verzierungen. Arial, Times New Roman oder Courier sind Beispiele für Schriftarten.

Schriftart ist im engeren Sinne nach eher ein Synonym zu Schriftschnitt, also bspw. Helvetica 24pt fett. Da Schriftarten wie Arial, Helvetica, Times Roman usw. oft aus mehreren Schriftschnitten für Breiten (schmal, breit, …), Strichstärken (leicht, normal, fett, …) und Zeichenlagen (normal, kursiv, …) bestehen, verwendet man auch den Begriff Schriftfamilie, der nicht genau von Schriftart abzugrenzen ist.

Glyphe

Der Begriff Glyphe wird gelegentlich für die konkrete Darstellung eines Zeichens verwendet. Die Schriftart bestimmt, welches Zeichen mit welcher Glyphe dargestellt wird.

Font

Ein Font ist die Aufbereitung einer Schriftart für den Einsatz mit einem Computer, also eine Datei, die eine Schriftart beschreibt.


Tastatur-Layout

Ein Tastatur-Layout oder eine Tastaturbelegung (auch Tastenlayout oder Tastenbelegung) ordnet einer Taste auf der Tastatur einen Codepoint zu.

Beispielsweise produziert die auf einer deutschen Tastatur mit „z“ beschriftete Taste mit einer deutschen Tastenbelegung den Unicode-Codepoint U+007A, also (erwartungsgemäß) ein „z“. Ändert man die Tastenbelegung auf US-amerikanisch, so erzeugt dieselbe Taste den Codepoint U+0079, also ein „y“. Mit einer russischen Belegung produzieren praktisch sämtliche Tasten andere Resultate, nämlich die Codepoints für kyrillische statt lateinischer Buchstaben, also z. B. „н“ (U+043D) statt „z“.


Weblinks

Beachten Sie: Die Verweise sind nicht sprachspezifisch. Das heißt, es wird die Sprach-Version geöffnet, die in Ihrem Browser als bevorzugte Sprache voreingestellt ist (so eine Übersetzung existiert). Eine andere Sprache kann auf den W3C-Seiten oben rechts gewählt werden.

Unicode:

  • Alan Wood’s Unicode Resources: Alle Unicode-Tabellen in reiner HTML-Form (im Gegensatz zu denen des Unicode-Consortiums), dazu ausführliche Infos über Unicode-Schriftarten und Schriftarten für spezielle Zeichensätze, Informationen zu unicode-fähigen Software-Produkten, inklusive Font- und Tastatur-Utilities und Hinweise zum Erstellen mehrsprachiger Webseiten.
    Autor: Allen Wood
  • Richard Ishidas string analyser: Identifiziert unicode-Zeichen in einem String.
    Autor: Richard Ishida, W3C
  • r12a: Unicode code converter

Typografie:

  • Bitstream Inc.: Alles zur TrueDoc-Technologie, einem Schriftartenkonzept für plattformübergreifendes elektronisches Publizieren (siehe auch  Downloadbare Schriftarten).
  • Font Size Intervals: Der Artikel von Todd Fahrner beschäftigt sich mit den unterschiedlichen Schriftgrößen und Maßeinheiten, insbesondere relativen Schriftgrößen.
  • Typograph online: Umfangreiche Einführung in die Lehre von der Typografie. Alles über Schriftarten, Schrifttypen und typografische Begriffe wie Dickte, Kerningpaar usw.
    Autor: Ralf Janaszek

Fontsammlungen:

  • 1001 Fonts.com | Download Free Fonts: Umfangreiche Schriftartensammlung für Truetype- und Postscript-Schriftarten.
    Schriftarten sind nach typografischen Kategorien sortiert. Das gesamte Verzeichnis ist durchsuchbar.
  • Letter Perfect: Hervorragend sortierte Sammlung von Schriftarten zum Downloaden. Interessante Hintergünde zum Thema Typografie