2. ASCII-Code

Transcrição

2. ASCII-Code
Kapitel 3
Codierung von Text
(ASCII-Code, Unicode)
1
Kapitel 3 – Codierung von Text
1. Einleitung
2. ASCII-Code
3. Unicode
2
1. Einleitung
Ein digitaler Rechner muss jede Information als eine Folge von 0
und 1 darstellen, d. h. damit ein Rechner Information verarbeiten
kann, muss diese zuerst codiert werden und nach der Verarbeitung wieder decodiert werden.
Beispiel: 17 + 4 = ?
17
4
Codierung
10001
+ 100
10101
21
Decodierung
3. Codierung von Text (ASCII, Unicode)
3
1. Einleitung
• Codierung ist die Zuordnung der Elemente einer Menge (eines
Zeichenvorrats) zu den Elementen einer anderen Menge (neuer
Zeichenvorrat), d. h. eine Codierung ist eine Abbildung.
• Beispiel: 2er-Komplementdarstellung mit 8-Bit
-128
-127
. . .
-1
0
+1
. . .
126
127
10000000
10000001
. . .
11111111
00000000
00000001
. . .
01111110
01111111
3. Codierung von Text (ASCII, Unicode)
4
1. Einleitung
Codierung von Text:
Um Text in einem Rechner darzustellen, zu verarbeiten oder
in einem Netzwerk zu übertragen, müssen die Buchstaben,
Satzzeichen usw. in Bitfolgen codiert werden.
Für die Art dieser Codierung jedes einzelnen Zeichens gibt es
verschiedene Standards, zum Beispiel ASCII und Unicode.
3. Codierung von Text (ASCII, Unicode)
5
Kapitel 3 – Codierung von Text
1. Einleitung
2. ASCII-Code
3. Unicode
6
2. ASCII-Code
Betrachtet man den allgemeinen Fall einer rechnerbasierten
Darstellung, Verarbeitung oder Übertragung von Text, so sind
mindestens zu codieren/decodieren:
•
•
•
•
•
•
26 Großbuchstaben
26 Kleinbuchstaben
10 Ziffern
ca. 16 Sonderzeichen (+, -, *, =, !, # usw.)
ca. 10 Steuerzeichen (Zeilenumbruch, Tabulator usw.)
1 Leerzeichen
Dies ergibt insgesamt ca. 89 Zeichen.
Mit 6 Bit können 64, mit 7 Bit können 128 verschiedene Kombinationen dargestellt werden. Für die eindeutige Darstellung eines
Zeichens des oben angegebenen „Alphabets“ sind also mindestens
7 Binärstellen erforderlich.
3. Codierung von Text (ASCII, Unicode)
7
2. ASCII-Code
ASCII-Code (American Standard Code for Information Interchange)
• Weit verbreiteter Standard zur Darstellung von Zeichen (Buchstaben,
Ziffern, Sonderzeichen) und Steuerzeichen durch Bitfolgen – Binärcode.
• Verfahren, bei dem bestimmten Zeichen (Buchstaben, Ziffern und
Sonderzeichen) eine Zahl zwischen 0 und 127 zugeordnet wird.
• (Nicht druckbare) Steuerzeichen besitzen ASCII Codes kleiner als 32.
• Der ursprüngliche ASCII-Code ist ein 7-Bit-Code, d. h. Zeichen werden
durch eine Folge von 7 Bits dargestellt; es lassen sich 128 verschiedene
Zeichen darstellen.
Buchstabe „H“ :
Ziffer „5“
:
Wort „Hallo“ :
Zahl „23“
:
(72)10 = (100 1000)2 = (48)16
(53)10 = (011 0101)2 = (35)16
dezimal 72 97 108 108 111
hex
48 61 6C 6C 6F
(011 0010 )2 (011 0011)2
hex 3216 3316
3. Codierung von Text (ASCII, Unicode)
8
2. ASCII-Code
7-Bit-ASCII-Code
Welche Zeichen
fehlen?
Heute arbeiten fast
alle Rechner mit 8-BitCodes (erweiterte
ASCII-Codes). Das
zusätzliches Bit verdoppelt die Anzahl der
darstellbaren Zeichen.
3. Codierung von Text (ASCII, Unicode)
9
2. ASCII-Code
Erweiterte ASCII-Codes sind 8-Bit-Codes (ein Byte pro Zeichen)
• Sie umfassen den 7-Bit ASCII-Code (links Bit mit Wert 0 anfügen).
Buchstabe E: (69)10 = (0100 0101)2 = (45)16
• Um Zeichen aus vielen verschiedenen Ländern abzudecken (wie ä, ß und é),
wurden verschiedene erweiterte ASCII-Codes definiert, die sich nur in den
Zeichen 128 bis 255 unterscheiden.
Normierung ISO 8859
-
Latin1 (West European)
Latin3 (South European)
Cyrillic
- Arabic
Hebrew
- Latin5 (Turkish)
-
Latin2 (East European)
Latin4 (North European)
Greek
Latin6 (Nordic)
Die meisten westeuropäischen und nordamerikanischen Zeichen werden durch
den Zeichensatz ISO 8859 Latin-1 abgedeckt. Die erweiterten ASCII-Codes führen
oft zu Fehlern bei der Informationsübertragung, weil Sender und Empfänger
verschiedene erweiterte ASCII-Codes verwenden oder auch Nicht-ASCII-Codes.
In E-Mails werden oft die deutschen Umlaute ä, ö, ü falsch dargestellt. ASCII-Code
196 entspricht zum Beispiel Ä bei Latin1-4 und  bei Greek.
3. Codierung von Text (ASCII, Unicode)
10
2. ASCII-Code
ISO 8859 Latin-1, Übersicht
nicht belegt
Steuerzeichen
Buchstabe „Ä“: (C4)16 =12·16+4=196
3. Codierung von Text (ASCII, Unicode)
11
2. ASCII-Code
• Die Tabelle auf der folgenden Seite zeigt einen Ausschnitt aus
dem Zeichensatz, der unter Windows verwendet wird, die so
genannte Windows Codepage 1252 (auch „Windows ANSI“ oder
„WinLatin1“).
• Dieser Zeichensatz ist an ISO-8851-Latin1 angelehnt, unterscheidet sich aber von diesem. Größter Unterschied zu ISO-Latin-1 ist
die Tatsache, dass im Bereich 128 - 159 (8016 - 9F16) anstelle von
Steuerzeichen meist druckbare Zeichen codiert sind.
• Alle Zeichen dieser Codepage können im Notepad auch über die
numerische Tastatur eingegeben werden, falls das entsprechende
Zeichen auf der Tastatur fehlt. Hierzu muss man die Alt-Taste
drücken und den Zeichencode als vierstellige Zahl eingeben, zum
Beispiel erzeugt Alt+0128 das Eurosymbol.
3. Codierung von Text (ASCII, Unicode)
12
2. ASCII-Code
Ausschnitt aus der Windows-Codepage 1252:
3. Codierung von Text (ASCII, Unicode)
13
Kapitel 3 – Codierung von Text
1. Einleitung
2. ASCII-Code
3. Unicode
14
3. Unicode
Ein Zeichen besteht aus 16 Bit (2 Byte) – 65536 verschiedene Zeichen:
• Länderspezifische Zeichen, mathematische Symbole sind darstellbar.
• Unicode 3.0 definiert 49194 Zeichen.
• 27484 für ideographische Zeichen (chinesische Schriftzeichen).
• Die ersten 127 Zeichen im Unicode entsprechen dem 7-Bit-ASCIICode, die ersten 255 Zeichen entsprechen ISO-8859-Latin-1,
danach folgen (viele!) andere Zeichen.
• Einsatz bei Betriebssystemen, Applikationen, Internetprotokollen 
Internationalisierung (Windows-Betriebssystem und -Anwendungen
für europäischen und asiatischen Markt).
• Durch einen Erweiterungsmechanismus lassen sich inzwischen über
106 Zeichen darstellen – Unicode 3.1 definiert 94140 Zeichen.
Beispiele:
• Eurosymbol
€
20AC16 (auch als U+20AC geschrieben)
• Integralzeichen
∫
222B 16 (auch als U+222B geschrieben)
• 20AC bzw. 222B müssen als Hexadezimalzahl interpretiert werden.
3. Codierung von Text (ASCII, Unicode)
15
3. Unicode
ISO-Latin1
Chinesische,
Japanische,
Koreanische
Schriftzeichen
Erweiterungsmechanismus:
Jeweils 2 aufeinander
folgende 16-Bit-Paare
bilden ein Zeichen
 106 Zeichen darstellbar
3. Codierung von Text (ASCII, Unicode)
16
3. Unicode
Unicode-Demo
im Notepad…
3. Codierung von Text (ASCII, Unicode)
17