WikiDer > Zeichenkodierung
Zeichenkodierung ist der Link von Zeichen von einem bestimmten Zeichensatz (auch Codepage genannt) zu a Code. Dieser Code kann bestehen aus natürliche Zahlen oder Morse, sondern auch aus Binärzahlen (oder elektrischen Signalen) und wird daher häufig zum Speichern von Zeichen auf Computern und anderen Geräten verwendet. Im Morsecode werden Zeichen aus dem Lateinisches Alphabet (Buchstaben) umgewandelt in eine Reihe von kurzen und langen Signalen, die mit a . verwendet werden können Telegraph. Bei Computern bestimmt die Zeichencodierung, wie die Zeichen (einschließlich Buchstaben, Zahlen, Satzzeichen und Leerzeichen sowie einige Steuercodes wie z Tab, Wagenrücklauf und Zeilenvorschub) das in flacher Text auftreten können, sind vertreten in Bytes.
Die genaue Funktionsweise der Steuercodes wird durch die Zeichencodierung nicht abgedeckt. Dies gilt insbesondere auch für die Frage, ob Carriage Return, Line Feed oder deren Kombination als Newline-Zeichen.
In den Anfängen der Computer und der Einführung von Zeichensätzen wie ASCII 1963 und EBCDIC 1964 wurde mit der Standardisierung der Zeichenkodierung begonnen. Da die Grenzen dieser Sets schnell klar wurden, wurden eine Reihe von Ad-hoc-Methoden erfunden, um sie zu erweitern. Auch die Unterstützung anderer Zeichen und Sprachen erwies sich als notwendig, ein Beispiel hierfür sind die CJK-Systeme für chinesische, japanische und koreanische Zeichen. Dies erforderte aufgrund der großen Anzahl von Zeichen im Gegensatz zu den bisherigen Ad-hoc-Methoden eine systematische Vorgehensweise bei der Zeichencodierung.
Zeichensatz vs. Zeichenkodierung
Ursprünglich war die Bedeutung von Zeichensatz und Zeichenkodierung gleich, derselbe Standard bestimmte sowohl die verfügbaren Zeichen als auch wie diese Zeichen in Codeeinheiten umgewandelt werden mussten (normalerweise ein Zeichen pro Einheit des Codes). Verwenden Sie dies MIME und darauf basierende Systeme verwenden immer noch den Begriff Zeichensatz für das vollständige Zeichen-zu-Code-Umsetzungssystem.
Einfache Zeichensätze
Manchmal wird noch ein einfacher Zeichensatz verwendet. Pathé Niederlande im Zahlungsverkehr verwendet (Name des Kontoinhabers und Beschreibung der Transaktion), beispielsweise der Name "Pathe". Banken garantieren das nicht immer diakritische Zeichen gut verarbeitet sein[1], und auch mit der verschiedenen Software, die Kunden verwenden, verhindert dies Komplikationen.
Auch in URL's und E-mailadressen diakritische Zeichen werden oft weggelassen.
Unicode
Unicode und sein Standard ISO 10646 Universal Character Set, die modernste Form der Zeichencodierung, verwendet einen anderen Ansatz. Die verfügbaren Zeichen und die Nummerierung, die Art der Kodierung der Zeichen als Codeeinheiten und dann Bytes, werden getrennt. Die Idee hinter dieser Trennung ist, dass sie einen Satz universeller Zeichen festlegt, die auf verschiedene Weise codiert werden können. Dies macht das System auch zu komplex, um es mit den Begriffen Zeichensatz oder Zeichencodierung auszudrücken:
EIN Zeichenrepertoire (Charakterrepertoire) ist der vollständige Satz abstrakter Zeichen, die das System unterstützt. Dies kann geschlossen werden, so dass keine neuen Ergänzungen erlaubt sind, ohne einen neuen Standard zu entwerfen, wie bei ASCII und den meisten ISO-8859Systeme. Das Zeichenrepertoire kann aber auch offen sein, wobei Ergänzungen erlaubt sind, wie z.B. mit Unicode und eingeschränkt auf den Codepages für Fenster. Die Charaktere in einem Repertoire repräsentieren die Entscheidungen, die beim Konvertieren getroffen wurden Notizbücher in linearen Informationseinheiten. Die einfachen Varianten des lateinischen, griechischen und kyrillischen Alphabets können in Buchstaben, Zahlen, Satzzeichen und eine Reihe anderer Zeichen vereinfacht, in einfache lineare Reihen umgewandelt und in der gleichen Leserichtung angezeigt werden. Aber selbst bei diesen Alphabeten wird das Umwandeln schwieriger mit Akzentzeichen, können diese als einzelnes Zeichen (Buchstabe mit Akzent) oder als separate Zeichen angesehen werden. Der erste Fall erleichtert die Arbeit mit dem Text, während der zweite Fall alle Kombinationen von Buchstaben und Akzenten erlaubt. In anderen Schriften, wie Arabisch oder Hebräisch, werden viel komplexere Zeichenrepertoires verwendet, um mit Eigenschaften wie Zwei-Wege-Text und Glyphen die in unterschiedlichen Situationen unterschiedlich zusammengestellt werden.
EIN kodierter Zeichensatz beschreibt die Umwandlung von Zeichen in positive Zahlen, auch Codepunkte genannt. Beispielsweise wird in einem bestimmten Repertoire der Großbuchstabe "A" des lateinischen Alphabets in die Zahl 65, der Buchstabe "B" in 66 usw. umgewandelt. Ein codierter Zeichensatz besteht aus dem vollständigen Satz der Zeichen und ihrer Nummern. Verschiedene codierte Zeichensätze können die gleichen Zeichenrepertoires verwenden, sie jedoch in unterschiedliche Zahlen umwandeln, wie dies bei . der Fall ist ISO-8859-1 und IBM-Codepages 037 und 500. In einem codierten Zeichensatz wird jeder Codepunkt nur für ein Zeichen verwendet.
EIN Zeichencodierungsform (Zeichencodierungsform, CEF) beschreibt die Umwandlung der Codes eines codierten Zeichensatzes in einen Satz von Zahlen begrenzter Länge (Code-Werte), was die Speicherung in einem Binärsystem mit begrenzter Bitzahl (fast jedes Computersystem) erleichtert. Beispielsweise kann ein System, das Zahlen in 16-Bit-Einheiten speichert, nur Zahlen zwischen 0 und 65.535 in jeder Einheit verwenden. Größere Zahlen sind möglich, wenn mehrere Einheiten verwendet werden, und genau das macht CEF, es beschreibt eine Möglichkeit, einen einzelnen Codepunkt zwischen beispielsweise 0 und 1,4 Millionen in eine Reihe von Codewerten zwischen beispielsweise 0 und 65.565 umzuwandeln.
Das einfachste CEF-System wählt Einheiten aus, die groß genug sind, um Codes aus dem codierten Zeichensatz (ein Codepunkt zu einem Codewert) direkt zu codieren. Dies funktioniert gut für codierte Zeichensätze, die zu 8-Bit-Codewerten passen (wie die meisten Nicht-CJK-Codierungen) und für 16-Bit-Größen angemessen, aber bei größeren Sätzen (wie moderner Unicode mit 21 Bit pro Zeichen) wird es zunehmend weniger effizient. Es ist auch schwierig, bestehende Systeme anzupassen, um größere Codewerte zu verwenden. Daher arbeiten viele moderne Systeme, die spätere Versionen von Unicode verwenden, mit UTF-8, die Unicode-Codepunkte in Bytezeilen (8-Bit) variabler Länge oder mit . umwandelt UTF-16, die mit 16-Bit-Reihen variabler Länge (auch als Wörter bezeichnet) arbeitet.
Danach heißt es Zeichencodierungsschema (Zeichencodierungsschema, CES) bestimmt, wie die Codes fester Länge in Zeilenbytes umgewandelt werden, die für die Speicherung in einem bytebasierten Dateisystem oder die Übertragung über ein bytebasiertes Netzwerk geeignet sind. Unicode verwendet normalerweise ein einfaches Zeichencodierungsschema, das einfach angibt, ob die Bytes der Zahl groß oder klein sind.endian-order (auch das ist bei UTF-8 nicht nötig). Es gibt aber auch Codierungsschemata für zusammengesetzte Zeichen, die spezielle Zeichenkombinationen (Escape-Sequenzen) verwenden, um zwischen einfachen Systemen zu wechseln (wie z ISO 2022). Und es gibt Komprimierungsschemata, die versuchen, die Anzahl der Bytes pro Codeeinheit zu begrenzen (wie z SCSU, BOCU und Schwacher Code).
Und es kann ein Protokoll auf höherer Ebene Dies bietet zusätzliche Informationen zur Auswahl einer bestimmten Variante eines Unicode-Zeichens, insbesondere wenn regionale Varianten als einzelnes Zeichen in Unicode verkettet werden. Ein Beispiel für zusätzliche Informationen ist das XML-Attribut xml:lang.
Am per Email Das Senden von Klartext an einen Computer mit einer anderen Zeichenkodierung kann unterschieden werden:
- Senden einer Textdatei als Anhang: die Bytes bleiben gleich, die Zeichen nicht alle (die Eurozeichen von dem ANSI-Zeichensatz ist beispielsweise nicht mehr lesbar; um dies zu vermeiden, kann es hilfreich sein, eine Unicode-Version zu senden)
- Versenden des Textes in der E-Mail selbst: größere Chance, dass die Zeichen erhalten bleiben (wenn sie auch vom anderen System unterstützt werden), aufgrund der Konvertierungen, die die Mailprogramme durchführen
Geschichte der Zeichenkodierungen
- Ich GingChina
- OghamIrland
- Blindenschrift International
Einige Zeichenkodierungen
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ein | B | C | d | E | f | ||
| 40 | ein | ein | ein | ein | ein | ein | ç | ñ | [ | . | < | ( | ! | ||||
| 50 | & | e | e | e | e | ich | ich | ich | ich | ß | ] | $ | * | ) | ; | ^ | |
| 60 | - | / | EIN | EIN | EIN | EIN | EIN | EIN | Ç | Ñ | ¦ | , | % | _ | > | ? | |
| 70 | Ö | E | E | E | E | ICH | ICH | ICH | ICH | ` | : | # | @ | ' | = | " | |
| 80 | Ö | ein | b | c | d | e | f | G | ha | ich | « | » | ð | ý | þ | ± | |
| 90 | ° | j | k | l | ich | nein | Ö | p | q | r | ª | º | æ | ¸ | Æ | ¤ | |
| A0 | µ | ~ | so | t | Sie | v | w | X | ja | z | ¡ | ¿ | Ð | Ý | Þ | ® | |
| B0 | ¢ | £ | ¥ | · | © | § | ¶ | ¼ | ½ | ¾ | ¬ | | | ¯ | ¨ | ' | × | |
| C0 | { | ein | B | C | d | E | f | G | huh | ich | | Ö | Ö | Ö | Ö | Ö | |
| D0 | } | J | k | l | ich | Nein | Ö | p | Q | R | ¹ | Sie | Sie | Sie | Sie | ÿ | |
| E0 | ÷ | so | T | SIE | V | W | X | Ja | z | ² | Ö | Ö | Ö | Ö | Ö | ||
| F0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ³ | SIE | SIE | SIE | SIE |
- ISO 646
- EBCDIC (siehe Tabelle)
- GBCD
- ISO 8859:
- Windows-Zeichensätze:
- Windows-1250 für mitteleuropäische Sprachen mit lateinischer Schrift (Polnisch, Tschechisch, Slowakisch, Ungarisch, Slowenisch, Kroatisch, Rumänisch und Albanisch)
- Windows-1251 für kyrillische Alphabete
- Windows-1252 für westliche Sprachen
- Windows-1253 für Griechisch
- Windows-1254 für Türkisch
- Windows-1255 für Hebräisch
- Windows-1256 für Arabisch
- Windows-1257 für baltische Sprachen
- Windows-1258 für Vietnamesen
- Mac OS Roman
- KOI8-R, KOI8-U, KOI7
- MIK
- Kork oder T1
- ISCIIA
- VISCI
- Die großen 5 (eine bekannte Variante ist Microsoft Codeseite 950)
- Guobiao
- GB2312
- GBK (Microsoft Codeseite 936)
- GB18030
- JIS verschieben für Japanisch (Microsoft Codeseite 932)
- EUC-KR für Koreanisch (Microsoft Codeseite 949)
- ISO-2022 und EUC vor dem CJK Zeichensätze
- Unicode (und Teilmengen davon, wie die 16-Bit-'Basic Multilingual Plane'). Sehen:
- ANSEL oder ISO/IEC 6937