WikiDer > Unicode
Unicode ist ein internationaler Standard (in engem Zusammenhang mit ISO-10646) zur Codierung von grafischen Zeichen und Symbolen in Binärcodes, ähnlich dem ASCII-Standard. Der Standard versieht alle Zeichen aller Schriftsprachen mit einem Namen (im Standard in Großbuchstaben geschrieben) und einer Nummer (oft hexadezimal geschrieben, mit vorangestelltem U). Zum Beispiel gibt es das Zeichen lateinischer Großbuchstabe A mit der Nummer U 0041 (65), getrennt vom Schriftarten in dem es angezeigt werden kann. Die grafische Darstellung pro Schriftart ist nicht Bestandteil des Standards.
Der Standard wird von der Unicode-Konsortium. Im Gegensatz zu ASCII (nur Englisch) oder Latein-1 (nur Westeuropäisch Sprachen) Unicode hat als Ziel alle verwendeten Notizbücher (mag ich griechisch schreiben und Chinesisch Zeichen) unterstützen. Der Standard enthält über 100.000 standardisierte Zeichen und ungefähr 900.000 Codes, die für die zukünftige Verwendung reserviert sind. Der Unicode-Standard schreibt nichts über die visuelle Darstellung eines Zeichens vor.
Unicode begrenzt nicht die Anzahl der Sprachen, die in einem einzelnen Dokument verwendet werden können. Unicode enthält neben Buchstaben und Zahlen auch viele Symbole, wie zum Beispiel: Kreuze, mathematische Zeichen, Währungssymbole usw. Unicode enthält keine Symbole, die nicht schriftlich verwendet werden, wie beispielsweise Straßenschilder. Einige "Zeichen" in Unicode sind selbst keine grafischen Zeichen, sondern haben eine Bedeutung für die Art und Weise, wie die sichtbaren Zeichen platziert werden, wie z Wagenrücklauf, Zeilenvorschub, Platz und das geschützte Leerzeichen (harter Raum, NBSP).
Ein Nebeneffekt der Konvertierung von anders kodierten Daten ist, dass die Sortierung nach numerischer Reihenfolge ein anderes Ergebnis (Leerzeichen, numerisch, Großbuchstaben, Kleinbuchstaben (SNUL)) ergibt als beispielsweise EBCDIC (Leerzeichen, Kleinbuchstaben, Großbuchstaben, numerisch (=SLUN)) erhält man, weil die Zeichen anders angeordnet sind.
Geschichte
Bei den ersten Computern waren alle Texte (Programme sowie Ein- und Ausgabe) in Großbuchstaben, mit weiteren Zeichen Zahlen, Satzzeichen und dergleichen, siehe zum Beispiel GBCD. Später wurden Kleinbuchstaben hinzugefügt, siehe zum Beispiel ASCII. Dieser 7-Bit-Code (8-Bits bilden 1 Byte) enthält nur die lateinische Buchstaben ohne diakritische Zeichen. Es lag daher nahe, ASCII auf . zu erweitern erweiterte ASCII mit einem achten Bit, aber es war nicht genug Platz für alle Zeichen in allen lateinischen Schriftsprachen. Daher haben viele Sprachen ihre eigene Variante von erweitertem ASCII bekommen und es gab auch EBCDIC. Es gibt keine Standardmethode, um anzugeben, welche Variante verwendet wird, dies geschieht in HTML anders als in Email, und in flacher Text es ist sicherlich nicht möglich, was eine Menge Verwirrung der Zungen verursacht.
Für viele Schriften, wie z Chinesisch, Arabisch und Japanische Schrift, 256 Zeichen sind nicht genug. Diese umfangreicheren Zeichensätze haben traditionell bereits andere Kodierungen verwendet, die Platz für mehr Zeichen enthalten.
Trotz all dieser unterschiedlichen Codierungen für die verschiedenen Sprachen war es noch nicht möglich, Fremdsprache schreiben. Wenn man in einem chinesischen Text vom . spricht Arabisch schreiben wollte, konnte man dies in der chinesischen Standardcodierung nicht tun: die arabischen Buchstaben sind darin nicht enthalten. Unicode und die dafür verfügbaren Codierungen bieten eine Lösung für all diese Probleme.
Versionen
Der Unicode-Standard entstand auf Initiative einer Reihe von Organisationen, die Ordnung im Chaos der Zeichenkodierungen schaffen wollten. Im 1991 Sie brachten ihren ersten Standard auf den Markt: Unicode 1.0.
Unicode 1.1 hatte Platz für 65.536 (= 216) Zeichen. Es stellte sich jedoch heraus, dass diese Zahl zu gering war, um alle Schriften der Welt zu unterstützen. Nur so existiert es Chinesisch Schrift besteht bereits aus etwa 25.000 Zeichen.
In Unicode 2.0 wurde die Anzahl der Codes auf über eine Million erweitert, siehe auch unten.
| Ausführung | Datum | Anzahl von Charakteren | ISBN | Hinweis |
|---|---|---|---|---|
| 1.0 | Oktober 1991 | 7.161 | 0-201-56788-1 | Erste Version mit Arabisch, Armenisch, Bengali, Bopomofo, kyrillisch, Devanagari, georgisch, griechisch mit koptisch, Gujarat, Gurmukhi, Hangul, hebräisch, Hiragana, Kanada, Katakana, Laos, Latein, Malayalam, Odia, tamilisch, Telugu, Thai und Tibetisch. |
| 1.0.1 | Juni 1992 | 28.359 | 0-201-56788-1 | Anzahl der zum Abgleich hinzugefügten Zeichen ISO/IEC 10646-1. Dies sind die "CJK"-Zeichen für die chinesischen, japanischen und koreanischen Schriften. |
| 1.1 | Juni 1993 | 34.233 | Neue Charaktere hinzugefügt, um den aktualisierten zu entsprechen ISO/IEC 10646-1. Das hält mehr HangulZeichen. | |
| 2.0 | Juli 1996 | 38.950 | 0-201-48345-9 | Erste Version von Unicode, die mehr als 65.536 Zeichen unterstützt. Die Hangul-Zeichen wurden entfernt und eine größere Zeichenfolge an einer anderen Stelle erneut hinzugefügt. |
| 2.1 | Mai 1998 | 38.952 | Eurozeichen hinzugefügt | |
| 3.0 | September 1999 | 49.259 | 0-201-61633-5 | u.a. Cherokee, Khmer, mongolisch, birmanisch, Ogham, ... |
| 3.1 | März 2001 | 94.205 | Viele chinesische Schriftzeichen (CJK) hinzugefügt | |
| 3.2 | März 2002 | 95.221 | Einige philippinische Skripte hinzugefügt (einschließlich Baybayin) | |
| 4.0 | April 2003 | 96.447 | 0-321-18578-1 | Hexagramm-Symbole, Linear B, ... |
| 4.1 | März 2005 | 97.720 | u.a. Tifinagh hinzugefügt | |
| 5.0 | Juli 2006 | 99.089 | 0-321-48091-0 | Balinesisch, Keilschrift, N'Ko, ... hinzugefügt |
| 5.1 | April 2008 | 100.713 | u.a. Sundanesisch, saurashtra, ... und auch Zeichen für Mahjong und Domino und der Scheibe von Phaistos | |
| 5.2 | Oktober 2009 | 107.296 | 978-1-936213-00-9 | u.a. Avestisch, bamoun, ... |
| 6.0 | Oktober 2010 | 109.242 | 978-1936213-01-6 | 2088 neue Charaktere, unter anderem Batak, Brahmi, Mandala und einige Symbole und Emoticons |
| 6.1 | Januar 2012 | 110.181 | unter anderem Chakma, Sharada, ... hinzugefügt | |
| 6.2 | September 2012 | 110.182 | ISO/IEC 10646: 2012 Das Zeichen der türkischen Lira hinzugefügt | |
| 6.3 | September 2013 | 110.187 | 6 neue Charaktere | |
| 7.0 | Juni 2014 | 113.021 | Bassa, Kaukasischer Albaner, Duployan, Elbasan, Grantha, khojki, Chudabadic, Linear A, Mahajanic, Manichäes, Mende Kikakuic, Modi, Moro, Nabatäer, Altes Nordarabisch, Altes Perm, Pahawh Hmong, Palmyren, Pau Cin Hau, Psalter Pahlavi, Siddhaṃ, tirhuta, Stadt Warang, dingbats. | |
| 8.0 | Juni 2015 | 120.737 | u.a. Ahom, Anatolische Hieroglyphen, Hatran, Multanic, Alt-Ungarisch, Gebärdenschreiben | |
| 9.0 | Juni 2016 | 128.237 | u.a. Adam, Bhaiksuki, Marken, Newa, Osage, Tangut | |
| 10.0 | Juni 2017 | 136.755 | u.a. Masaram Gondic, nushu, Soja, Hentaigana, Bitcoin | |
| 11.0 | Juni 2018 | 137.374 | u.a. dogri, Hanifi Rohingya, Copyleft[1] | |
| 12.0 | März 2019 | 137.993 | u.a. laotisches Skript, Erweiterungen tamilisch, Hiragana und Katakana | |
| 13.0 | März 2020 | 143.924 | u.a. Yeziden, Chorasmisch, Divehi Akuru, Kitan; 55 neue Emojis |
Codierung
Der Unicode-Standard weist jedem Zeichen eine Zahl zu, Codepunkt genannt, was geschrieben wird U xxx, in dem die X'und der hexadezimal Ziffern des Codepunktes (mindestens vier, ggf. mit führenden Nullen, maximal sechs). Die Codepunkte, die mit einem Zeichen verknüpft sind oder sein können (die sogenannten Unicode-Skalarwerte) reichen von U 0000 (0) bis U D7FF (55.295) und von U E000 (57.344) bis U 10FFFF (1.114.111). Das sind 55.296 8.192 = 63.488 (0xF800) Zeichen mit einem Codepunkt bis einschließlich zwei Bytes plus 1.048.576 (0x100000) weitere, insgesamt 1.112.064 (0x10F800). Der Break besteht aus 2048 (0x800) Codepunkten, die nicht für den Vorteil der UTF-16-Codierung verwendet werden; Sie werden Ersatzcodepunkte erwähnt.
Unicode bietet verschiedene Kodierungsformen (Kodierungsformen), um die Skalarwerte darzustellen, einschließlich:
- UTF-32: Eine Codeeinheit (Codeeinheit) hat 32 Bit. Zeichen werden in einer Codeeinheit gespeichert. Ein Nachteil ist, dass selbst kleine Skalarwerte vier Bytes benötigen.
- UTF-16: Eine Codeeinheit hat 16 Bit. Zeichen werden in einer oder zwei Codeeinheiten gespeichert, die niedrigere in einer, die höhere in zwei. UTF-16 ist eine Erweiterung von UCS-2, die Kodierung von Unicode bis Version 1.1. Die in zwei Codeeinheiten gespeicherten Zeichen verwenden nur die 2048 16-Bit-Zahlen, die nicht separat für die Zeichenspeicherung verwendet werden. Damit bleiben 63.488 16-Bit-Zahlen zum Speichern eines Zeichens in einer Codeeinheit übrig. Von den 2048 aufgeführten 16-Bit-Zahlen werden 1024 ausschließlich als erste der beiden 16-Bit-Zahlen verwendet, die ein Zeichen darstellen, und 1024 nur als zweite, was 1.048.576 Kombinationen für ebenso viele Skalarwerte ergibt. Eine solche Kombination wird a Ersatzpaar erwähnt.
- UTF-8: Eine Codeeinheit hat 8 Bit. Zeichen werden in ein bis vier Codeeinheiten gespeichert, je größer der Skalarwert, desto mehr. Die in zwei bis vier Codeeinheiten gespeicherten Zeichen verwenden nicht die 128 8-Bit-Zahlen, die einzeln zum Speichern eines Zeichens verwendet werden. Von den verbleibenden 128 8-Bit-Zahlen werden 64 ausschließlich für die nachfolgenden 8-Bit-Zahlen für Zeichen verwendet, die in zwei bis vier Codeeinheiten gespeichert sind. Von den verbleibenden 64 8-Bit-Zahlen werden 32 nur für die erste 8-Bit-Zahl für die 1920 in zwei Codeeinheiten gespeicherten Zeichen verwendet, 16 nur für die erste 8-Bit-Zahl für die 61.440 Zeichen, die in drei Codeeinheiten gespeichert sind, 8 nur für die erste 8-Bit-Zahl für die 1.048.576 Zeichen, die in vier Codeeinheiten gespeichert sind, und 8 ungenutzt. Bei dieser Codierung werden ASCII-Zeichen unverändert codiert und benötigen daher weniger Speicher als UTF-16 (eins statt zwei Bytes), aber eher große Skalarwerte benötigen mehr Speicher (drei statt zwei Bytes).
| Codebereich hexadezimal | UTF-32 binär | UTF-16 binär | UTF-8 binär | Bemerkungen |
|---|---|---|---|---|
| U 0000..U 007F (128 = 0x80 ASCII-Äquivalente) | 00000000 00000000 00000000 0aaaaaa | 00000000 0aaaaaa | 0aaaaaa | |
| U 0080..U 07FF (1.920 = 0x780 Skalarwerte) | 00000000 00000000 00000bbb aaaaaaaa | 00000bbb aaaaaaaa | 110bbba 10aaaaaa | |
| U 0800..U D7FF und U E000..U FFFF (61.440 = 0xF000 Skalarwerte, die restlichen im in Einfaches mehrsprachiges Flugzeug) | 00000000 00000000 bbbbbbbb aaaaaaaaa | bbbbbbbb aaaaaaaaa | 1110bbbb 10bbbbaa 10aaaaaa | |
| U 010000..U 10FFFF (1.048.576 = 0x100000 zusätzliche Codepunkte) | 00000000 000ccccc bbbbbbbb aaaaaaaaa | 110110dd ddbbbbbb 110111bb aaaaaaaa | 11110ccc 10ccbbbb 10bbbbaa 10aaaaaa | dddd = ccccc − 1 |
Da Computer die Daten in einer Codeeinheit, die mehrere Bytes belegt, auf unterschiedliche Weise speichern können, gibt es zwei Varianten von UTF-32 und UTF-16, nämlich Big-Endian, wobei sich das höchstwertige Byte an der niedrigsten Adresse befindet, und kleiner endian, mit dem niederwertigsten Byte zuerst.
Die 256 Zeichen von ISO-8859-1 sind in Unicode unter den gleichen Codes enthalten: U 0000 bis U 00FF. Die zweiten 128 davon werden jedoch in Unicode in keiner der drei Kodierungen in einem Byte dargestellt. Auch andere Codepages von ISO 8859 finden Sie in Unicode, wo die ursprüngliche Zeichenreihenfolge beibehalten wird.
Sortieren
Das Sortieren von Zeichen nach dem Skalarwert in UTF-32 und UTF-8 entspricht dem Sortieren nach dem entsprechenden (Big-Endian) Bytesequenzen (in dem Sinne, dass 0x01 vor 0x00 kommt, weil 0x01 vor 0x02 kommt). Dies gilt nicht für UTF-16, wenn Zeichen aus der Basic Multilingual Plane und einer anderen Ebene verglichen werden.
Benutzen
In HTML- und XML-Dokumenten können Unicode-Zeichen eingefügt werden, die in der verwendeten Zeichenkodierung nicht unterstützt werden über Anmeldeinformationen für Charakterentitäten. Der Großbuchstabe A wird beispielsweise durch A (dezimal) oder A (hexadezimal) dargestellt.
Schriften
Im September 2020 wird Unicode Zeichen für 154 Skripte bereitstellen, darunter die folgenden:
Die Zahl der Skripte wird ständig erweitert. Viele historische Schriften sind ebenfalls enthalten. Die vollständige Liste finden Sie auf der Unicode-Website.[2]
Siehe auch
Externe Links
- Homepage der Unicode-Arbeitsgruppe
- DecodeUnicode - Unicode-WIKI, 50.000 gifs
- Links zu Unicode-Codepages
- Viele verschiedene Charaktere
Quellen, Anmerkungen und/oder Verweise
|
| Siehe die Kategorie Unicode von Wikimedia Commons für Mediendateien zu diesem Thema. |