meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
guide:zeichencodierung [2022/09/25 11:03] – angelegt juergenhaas | guide:zeichencodierung [2022/09/29 11:47] (aktuell) – [UTF-8] juergenhaas | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Zeichencodierung ====== | ====== Zeichencodierung ====== | ||
+ | |||
+ | Sämtliche Informationen in einem Digitalcomputer werden in Form von Bits, also als Zahlen dargestellt. Der Text, den du gerade liest, besteht aber aus Buchstaben. Damit dies möglich ist, gibt es verschiedene Möglichkeiten Buchstaben und andere Schriftzeichen durch Zahlen darzustellen. Man spricht hier auch von Zeichencodierung. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Da es viele verschiedene Methoden gibt, Text in Zahlen umzuwandeln und wieder zurück, kommt es häufig zu **Codierungsfehlern** wie im Bild dargestellt. Die gespeicherte Zahl wird bei der Umwandlung in Schriftzeichen einfach falsch interpretiert. | ||
===== Empfohlene Lernstrategie ===== | ===== Empfohlene Lernstrategie ===== | ||
+ | ==== ASCII ==== | ||
+ | Der einfachste Weg Text in Form von Zahlen abzuspeichern, | ||
+ | |||
+ | Auf der Seite [[https:// | ||
+ | |||
+ | Etwas ausführlicher informiert dich der entsprechende [[https:// | ||
+ | |||
+ | Im Alltag eines Informatikers ist es immer wieder hilfreich aus dem Kopf zu wissen, dass | ||
+ | * von 0x30 - 0x39 die Ziffern von 0-9 codiert sind | ||
+ | * bei 0x41 das große Alphabet beginnt und | ||
+ | * bei 0x61 das kleine Alphabet beginnt. | ||
+ | |||
+ | |||
+ | ==== ANSI-Zeichencode ==== | ||
+ | |||
+ | Wie dir vielleicht aufgefallen ist, kann man mit ASCII keine Umlaute wie ä, ö oder ü codieren. In anderen Sprachen ist das ähnlich. | ||
+ | |||
+ | Aus diesem Grund wurde der ASCII-Zeichensatz von einer 7-Bit- auf eine 8-Bit-Darstellung erweitert, so dass 256 statt nur 128 Zeichen codiert werden können. Die Zeichen ab dem Wert 128 werden für verschiedene Sonderzeichen, | ||
+ | |||
+ | Die gesamte Ersetzungstabelle des ANSI-Codes und einige erläuterungen kannst du dir auf [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Dieser Screenshot zeigt eine einfache Textdatei mit ANSI-Zeichencodierung im Hex-Editor. Hier kann nachvollzogen werden, | ||
+ | * wie die hexadezimalen Byte-Werte im linken Abschnitt den jeweiligen Schriftzeichen im rechten Abschnitt entsprechen. | ||
+ | * wie Zeilenumbrüche unter Windows codiert werden. | ||
+ | * wie der Umlaut **ü** codiert wird. | ||
+ | |||
+ | Nimm dir Zeit die Darstellung zu verstehen und die Codierung mit einer Codetabelle nachzuvollziehen. | ||
+ | |||
+ | ==== Unicode ==== | ||
+ | |||
+ | Da auch der ANSI-Zeichensatz sehr beschränkt ist und ohne eine entsprechende Standardisierung internationale Kompatibilität kaum erreichbar ist, wurde der Unicode-Standard etabliert. In diesem sind nicht nur 256 Zeichen sondern **fast 150.000** Zeichen codiert. Um alle diese Zeichen durchzunummerieren, | ||
+ | |||
+ | Bei der riesigen Zeichenmenge im Unicode-Standard ist es naheliegend, | ||
+ | |||
+ | |||
+ | ==== UTF-8 ==== | ||
+ | |||
+ | Damit das Platzproblem, | ||
+ | |||
+ | Die UTF-8-Codierung ermöglicht es, mit einer variablen Byte-Anzahl (1-4 Bytes) jedes Schriftzeichen im gespeicherten Text eindeutig einem Unicode-Zeichen zuzuordnen. | ||
+ | |||
+ | |||
+ | Einen kompakten aber gut nachvollziehbaren Überblick kann dir dieses [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Dieser Screenshot zeigt annähernd die selbe Textdatei wie oben, allerdings mit UTF-8-Zeichencodierung. | ||
+ | |||
+ | Besonderes Augenmerkt verdient die veränderte Darstellung des Umlautes **ü**. Alle anderen Zeichen benötigen keinen zusätzlichen Speicherplatz. | ||
+ | |||
+ | === Versuch === | ||
+ | |||
+ | Wenn du dazu auf eigene Faust noch ein wenig Erfahrung sammeln möchtest, dann kannst du in Notepad++ das Hex-Editor-Plugin installieren, | ||
+ | |||
+ | |||
+ | ==== BCD ==== | ||
+ | |||
+ | Die Abkürzung BCD steht für **Binary Coded Decimals**, also für binär codierte Dezimalzahlen. Es gibt verschiedene BCD-Verfahren, | ||
+ | |||
+ | Allerdings geht mit dieser Darstellung auch ein erhöhter Platzbedarf einher, denn die Werte A-F bleiben an jeder Stelle ungenutzt. Nicht zuletzt deshalb wird diese Darstellungsform heutzutage nur noch selten eingesetzt. Unter anderem im Finanzsektor und in der Wissenschaft gibt es einige seltene Anwendungsfälle, | ||
+ | |||
+ | Für weitere Details hierzu siehe [[https:// | ||
+ | |||
+ | |||
+ | ==== EBCDIC ==== | ||
+ | |||
+ | Der Extended Binary Coded Decimal Interchange Code ist eine Zeichencodierung auf Basis von 8-Bit-Zeichen, | ||
+ | |||
+ | Es handelt sich hierbei in erster Linie um eine historische Zeichencodierung, | ||
+ | |||
+ | EBCDIC ist unter anderem dafür berüchtigt, | ||
+ | |||
+ | Mehr Informationen zu EBCDIC erhältst du auf [[https:// | ||
===== Zusätzliche und alternative Materialien ===== | ===== Zusätzliche und alternative Materialien ===== | ||
+ | Wikipedia: [[https:// | ||
+ | |||
+ | Wikipedia: [[https:// | ||
+ | Wikipedia: [[https:// | ||
+ | Wikipedia: [[https:// | ||
+ | Wikipedia: [[https:// | ||