1.2 Zeichenkodierung
Damit der Webbrowser Zeichen im Inhalt des HTML-Dokuments korrekt darstellen kann, wird im head-Element angegeben, welche Zeichenkodierung verwendet wird.
<head>
<meta charset="UTF-8">
</head>
...
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 | { | | | } | Ä | Ö | Ü | → | ∈ | ∑ |
Ü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 → 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.