1.2 Zeichenkodierung

Damit der Webbrowser Zeichen im Inhalt des HTML-Dokuments korrekt darstellen kann, wird im head-Element angegeben, welche Zeichenkodierung verwendet wird.

HTML
...
   <head>
      <meta charset="UTF-8">
   </head>
...
Abb. 1-5: Zeichencodierung UTF-8

Ein Zeichensatz (engl.: character set) legt fest, welche Zeichen (Buchstabe, Ziffer, Sonderzeichen, ...) mit seiner Hilfe verwendet werden können. Von Zeichenkodierung (engl.: coded character set) spricht man, wenn die einzelnen Zeichen zusätzlich durchnummeriert sind. Die einem Zeichen zugewiesene Nummer wird Zeichencode (engl. codepoint) genannt.

Der Zeichencode kann als Dezimal- oder Hexadezimalzahl angegeben werden. In beiden Fällen muss der Zeichencode jedoch in das Binärsystem überführt werden, bevor er maschinell verarbeitet werden kann. Eine Bitfolge, die einen Zeichencode und damit ein Zeichen darstellt, nennt man code unit.

Zeichencode: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
Zeichen: ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4
Zeichencode: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
Zeichen: 5 6 7 8 9 : ; < = > ? @ A B C D E F G H
Zeichencode 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
Zeichen: I J K L M N O P Q R S T U V W X Y Z [ \
Zeichencode: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
Zeichen: n o p ] ^ _ ` a b c d e f g h i j k l m
Zeichencode: 113 114 115 116 117 118 119 120 121 122 123 124 125 196 214 220 8594 8712 8721
Zeichen: q r s t u v w x y z { | } Ä Ö Ü
Abb. 1-6: Unicode-Zeichen

Überführung eines Zeichencodes in eine Bitfolge

Zur Überführung eines Zeichencodes in eine code unit existieren verschiedene Verfahren.

UTF-32 rechnet jeden Zeichencode in das Binärsystem um. Die berechnete Binärzahl wird immer mit 4 Byte (4 x 8 Bit = 32 Bit) dargestellt und direkt als code unit genutzt.

UTF-8 rechnet lediglich Unicode-Zeichen mit einem Zeichencode aus dem Bereich von 0 bis 127 (0 bis 7F hexadezimal) direkt in eine entsprechende Binärzahl um. Die so entstehenden code units sind stets 1 Byte groß. Da im Unicode die ersten 127 Zeichen bzw. deren Zeichencodes denen des ASCII entsprechen, ist UTF-8 in diesem Bereich voll abwärtskompatibel zu ASCII. Bei einem Text, der lediglich diese Zeichen nutzt, macht es daher keinen Unterschied, ob er mit UTF-8 oder ASCII kodiert ist. Die verbleibenden Unicode-Zeichen, deren Zahlencode größer als 127 ist, unterteilt UTF-8 in drei Bereiche, die jeweils mit einem eigenen Algorithmus in eine zwei, drei oder vier Byte große code unit überführt werden.

Zeichenkodierung im World Wide Web

Im World Wide Web wird in der Regel UTF-8 eingesetzt. UTF-8 ermöglicht es neben Umlauten auch andere Sonderzeichen unmittelbar im HTML-Dokument zu verwenden. Unicode-Zeichen, die nicht auf der Tastatur vorhanden sind, können mit Hilfe des Kürzels &# gefolgt von dem jeweiligen Zeichencode und einem abschließendem Strichpunkt eingefügt werden. Zum Beispiel zeigt der Code &#8594; einen nach rechts weisenden Pfeil ().

Beim Erstellen einer HTML-Datei muss dazu in dem verwendeten Texteditor als Zeichenkodierung UTF-8 ausgewählt werden. Notepad++ bietet hierfür im Menü Kodierung den Eintrag UTF-8.