MezData-Logo

Zeichensätze und Kodierungen

Grundproblem

Am Anfang war ASCII (American Standard Code for Information Interchange), ein 7 Bit Code mit 128 Zeichen (0..127). Die Codewerte 0..32 werden als Steuerzeichen verwendet.

ASCII-Tabelle (7-Bit)

Dez Hex Zeichen Dez Hex Zeichen Dez Hex Zeichen Dez Hex Zeichen Dez Hex Zeichen
0 00 Nul 26 1A SUB 52 34 4 78 4E N 104 68 h
1 01 SOH 27 1B ESC (Escape) 53 35 5 79 4F O 105 69 i
2 02 STX 28 1C FS 54 36 6 80 50 P 106 6A j
3 03 ETX 29 1D GS 55 37 7 81 51 Q 107 6B k
4 04 EOT (End Of Transmission) 30 1E RS 56 38 8 82 52 R 108 6C l
5 05 ENQ 31 1F US 57 39 9 83 53 S 109 6D m
6 06 ACK 32 20 SP (Space) 58 3A : 84 54 T 110 6E n
7 07 BELL (Klingel) 33 21 ! 59 3B ; 85 55 U 111 6F o
8 08 BS (Back Space) 34 22 " 60 3C < 86 56 V 112 70 p
9 09 Hor. Tabulator 35 23 # 61 3D = 87 57 W 113 71 q
10 0A LF (Line Feet) 36 24 $ 62 3E > 88 58 X 114 72 r
11 0B Ver. Tabulator 37 25 % 63 3F ? 89 59 Y 115 73 s
12 0C FF (Form Feet) 38 26 & 64 40 @ 90 5A Z 116 74 t
13 0D CR (Carriage Return) 39 27 ' 65 41 A 91 5B [ 117 75 u
14 0E SO 40 28 ( 66 42 B 92 5C \ 118 76 v
15 0F SI 41 29 ) 67 43 C 93 5D ] 119 77 w
16 10 DLE 42 2A * 68 44 D 94 5E ^ 120 78 x
17 11 DC1 43 2B + 69 45 E 95 5F _ 121 79 y
18 12 DC2 44 2C , 70 46 F 96 60 ' 122 7A z
19 13 DC3 45 2D - 71 47 G 97 61 a 123 7B {
20 14 DC4 46 2E . 72 48 H 98 62 b 124 7C |
21 15 NAK 47 2F / 73 49 I 99 63 c 125 7D }
22 16 SYN 48 30 0 74 4A J 100 64 d 126 7E ~
23 17 ETB 49 31 1 75 4B K 101 65 e 127 7F DEL (Delete)
24 18 CAN 50 32 2 76 4C L 102 66 f      
25 19 EM 51 33 3 77 4D M 103 67 g      

Es fehlen jedoch Umlaute wie Ä;Ö,Ü usw. Deshalb wurde die Codierungstabelle (engl. CodePage CP) erweitert, leider nicht einheitlich:

Zeichen MS-DOS ISO-8859-1 ROMAN (Mac) HTML-Entität
Dez. HEX Dez. HEX Dez. HEX
Ä 142 8E 196 C4 128 80 &Auml;
Ö 153 99 214 D6 133 85 &Ouml;
ß 225 E1 223 DF 167 A7 &szlig;
CodePage-Link CP850 8859-1 ROMAN www.eki.ee/letter

Folge: Drückt man unter MS-DOS die Ä-Taste, wird 142 codiert, ein ISO-8859-1 System kann mit diesem Wert nichts anfangen und ein Mac gibt é aus.

Sobald man also den "sicheren" 7-Bit ASCII-Bereich verlässt konnte das zu Komplikationen führen. Ein Ausweg ist es, jedem besonderen Zeichen einen eigenen Namen zu geben, der nur aus ASCII-Zeichen besteht – die HTML-Entitäten oder benannte Zeichen: de.selfhtml.org/html/referenz/zeichen.htm

Bei dieser Methode kann praktisch nichts schief gehen, allerdings sind die Entitäten etwas länglich..

Oder man gibt dem Browser an, mit welchem Zeichensatz kodiert wurde:

Angabe des Zeichensatzes im Dokument-Head

<head>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>

Achtung Falle! Wenn ich z.B. auf meinem Mac im Quelltext schreibe:

<h4>Äpfel</h4>

Äpfel – sieht das im Browser so aus:

Das Problem ist also primär die Kodierung bei der Eingabe, denn ein Mäc-Ä wird im Speicher nicht entsprechend ISO-8859-1 Kodiert. Oder man denke an die Eingabe von Zeichen unter Windows mittels der Tastatureingabe ALT + Zahl, hier kommt die Kodierung "Windows-Codepage Western-Latin-1" zur Anwendung. Daher wählt man besser eine der drei folgenden Möglichkeiten Zeichen im Quelltext zu kodieren:

  1. Ä mit &Auml; als HTML-Entität
  2. Ä mit &#196; als Dezimalzahl
  3. Ä mit &xC4; als Hexadezimalzahl

Die Zahlenwerte bei 2. und 3. werden dann gemäß der vereinbarten CodePage (hier ISO-8859-1) interpretiert. Nicht alle Zeichen sind wie bei 1. mit Namen erreichbar.

Vertiefung:

SELFHTML: Internationalisierung / Computer und geschriebene Sprache

SELFHTML: Internationalisierung / Zeichensätze (ISO-8859-Familie und andere)

SELFHTML: HTML/XHTML / Allgemeine Regeln für HTML / Zeichenvorrat, Sonderzeichen und HTML-eigene Zeichen

Moderne Zeiten, Kodierung als UTF-8 in Unicode

Aktuelle Betriebssysteme sind in der Lage Zeichen im Unicode zu kodieren, so hat Wikipedia auf UTF-8 umgestellt: Wikipedia:Umstellung auf Unicode

Vertiefung:

http://www.alanwood.net/unicode/

SELFHTML: Internationalisierung / Das Unicode-System

Einsatz von Unicode

ANSI character set and equivalent Unicode and HTML characters

Code Charts (PDF Version)