Unicode

Unicode
New Unicode logo.svg
Alias ​​(e) Universal codiertes Zeichensatz (UCS, ISO/IEC 10646)
Sprachen) International
Standard Unicode Standard
Codierungsformate
Vorausgegangen von ISO/IEC 8859, verschiedene andere

Unicodeformal Der Unicode -Standard[Anmerkung 1][Anmerkung 2] ist ein Informationstechnologie Standard Für die Konsequenz Codierung, Repräsentation und Handhabung von Text in den meisten der weltweit ausgedrückt Schreibsysteme. Der Standard, der von der aufrechterhalten wird Unicode -Konsortiumdefiniert 144.697 Zeichen[3][4] Abdeckung von 159 modern und historisch Skriptesowie Symbole, Emojiund nicht visuelle Kontrolle und Formatierungscodes.

Der Erfolg von Unicode bei der Vereinigung von Charakteren hat zu seiner weit verbreiteten und vorherrschenden Verwendung in der geführt Internationalisierung und Lokalisierung von Computer Software. Der Standard wurde in vielen jüngsten Technologien, einschließlich moderner, implementiert Betriebssysteme, Xmlund modernste Programmiersprachen.

Das Unicode -Zeichenrepertoire wird mit synchronisiert ISO/IEC 10646mit dem Code-für-Code identisch mit dem anderen. Der Unicode -StandardEnthält jedoch mehr als nur die Basis Code. Neben den Charaktercodings enthält die offizielle Veröffentlichung des Konsortiums eine Vielzahl von Details zu den Skripten und der Anlage: Normalisierung Regeln, Zersetzung, Kollation, rendern und Bidirektionaler Text Zeigen Sie die Reihenfolge für mehrsprachige Texte an und so weiter.[5] Das Standard Enthält auch Referenz Datei und visuelle Diagramme, mit denen Entwickler und Designer das Repertoire korrekt implementieren können.

Unicode kann mit mehreren verschiedenen gespeichert werden Codierungen, die die Zeichencodes in Sequenzen von Bytes übersetzen. Der Unicode -Standard definiert drei und mehrere andere Codierungen, die alle in der Praxis sind Codierungen variabler Länge. Die häufigsten Kodierungen sind die ASCII-kompatibel UTF-8, der veraltete UCS-2, die UCS-2-kompatibel UTF-16, und GB18030 Dies ist kein offizieller Unicode -Standard, wird jedoch in China verwendet und implementiert Unicode vollständig.

Herkunft und Entwicklung

Unicode hat das explizit ISO/IEC 8859 Standard, der in verschiedenen Ländern der Welt breite Nutzung findet, aber weitgehend nicht kompatibel miteinander kompatibel ist. Viele herkömmliche Charaktercodierungen teilen ein gemeinsames Problem, als sie eine zweisprachige Computerverarbeitung ermöglichen (normalerweise verwendet Lateinische Charaktere und das lokale Skript), aber nicht mehrsprachige Computerverarbeitung (Computerverarbeitung willkürlicher Skripte miteinander gemischt).

Unicode codiert in Absicht die zugrunde liegenden Zeichen -Grapheme und graphemähnliche Einheiten-erfreut sich als die Variante Glyphen (Renderings) für solche Charaktere. Im Falle des chinesische CharaktereDies führt manchmal zu Kontroversen über die Unterscheidung des zugrunde liegenden Charakters von seinen Variantenglyphen (siehe Han -Vereinigung).

In der Textverarbeitung übernimmt Unicode die Rolle, eine einzigartige Bereitstellung zu liefern Codepunkt-a Nummer, keine Glyphe - für jeden Charakter. Mit anderen Worten, Unicode repräsentiert ein Zeichen auf abstrakte Weise und hinterlässt das visuelle Rendering (Größe, Form, Schriftartoder Stil) zu anderen Software wie a Webbrowser oder Textverarbeitungssystem. Dieses einfache Ziel wird jedoch aufgrund der Zugeständnisse der Designer von Unicode in der Hoffnung, eine schnellere Einführung von Unicode zu fördern.

Die ersten 256 Codepunkte wurden mit dem Inhalt von identisch gemacht ISO/IEC 8859-1 um es trivial zu machen, vorhandenen westlichen Text umzuwandeln. Viele im Wesentlichen identische Zeichen wurden mehrmals an verschiedenen Codepunkten codiert, um Unterscheidungen zu erhalten, die durch Legacy -Codierungen verwendet wurden, und ermöglichen daher die Konvertierung von diesen Codierungen zu Unicode (und zurück), ohne Informationen zu verlieren. Zum Beispiel das "Fullwidth Formen"Abschnitt der Codepunkte umfasst ein vollständiges Duplikat des lateinischen Alphabets, weil Chinesisch, Japanisch und Koreanisch (CJK) Schriftarten enthalten zwei Versionen dieser Buchstaben, "Fullwidth", die der Breite der CJK -Zeichen entspricht, und die normale Breite. Für andere Beispiele siehe doppelte Zeichen in Unicode.

Die Empfänger der Unicode Bulldog -Preisträger umfassen viele Namen, die die Entwicklung von Unicode beeinflussen und einbeziehen und einbeziehen Tatsuo Kobayashi, Thomas Milo, Roozbeh Pournader, Ken Lunde, und Michael Everson.[6]

Geschichte

Basierend auf Erfahrungen mit dem Xerox Character Code Standard (Xccs) seit 1980,,[7] Die Ursprünge von Unicode Datum bis 1987 (vor 35 Jahren), Wenn Joe Becker aus Xerox mit Lee Collins und Mark Davis aus Apfel begann, die praktischen Aspekte der Schaffung eines universellen Charakters zu untersuchen.[8] Mit zusätzlichen Eingaben von Peter Fenwick und Dave Opstad,[7] Joe Becker veröffentlichte im August 1988 einen Vorschlag für ein "internationales/mehrsprachiges Textcharakter -Codierungssystem, das vorläufig Unicode genannt". Er erklärte, dass "der Name" Unicode "eine einzigartige, einheitliche, universelle Kodierung vorschlagen soll".[7]

In diesem Dokument berechtigt Unicode 88, Becker skizzierte a 16-Bit Charaktermodell:[7]

Unicode soll die Notwendigkeit einer praktikablen, zuverlässigen Welttext -Codierung erfüllen. Unicode könnte grob als "Breitkörper-ASCII" bezeichnet werden, das auf 16 Bit gestreckt wurde, um die Charaktere aller lebenden Sprachen der Welt zu umfassen. In einem ordnungsgemäß konstruierten Design sind 16 Bit pro Charakter für diesen Zweck mehr als ausreichend.

Sein ursprüngliches 16-Bit-Design basierte auf der Annahme, dass nur diese Skripte und Charaktere in der modernen Verwendung codiert werden müssten:[7]

Unicode hat eine höhere Priorität für die Gewährleistung des Nutzens für die Zukunft als die Erhaltung der vergangenen Antiquitäten. Unicode zielt in erster Linie auf die im modernen Text veröffentlichten Charaktere (z. B. in der Vereinigung aller Zeitungen und Zeitschriften, die 1988 in der Welt gedruckt wurden), deren Zahl zweifellos weit unter 2 liegt14 = 16.384. Jenseits dieser modernen Nutzungsfiguren können alle anderen als veraltet oder selten definiert werden. Dies sind bessere Kandidaten für die Registrierung von privaten Nutzung als für die Verschiebung der öffentlichen Liste allgemein nützlicher Unicodes.

Anfang 1989 erweiterte sich die Unicode-Arbeitsgruppe um Ken Whistler und Mike Kernaghan von Metapher, Karen Smith-Yoshimura und Joan Aliprand von Rlgund Glenn Wright von Sun Microsystemsund 1990 Michel Suignard und Asmus Freytag von Microsoft und Rick McGowan von Nächste schloss sich der Gruppe an. Bis Ende 1990 waren die meisten Arbeiten zur Abbildung vorhandener Charaktercodierungsstandards abgeschlossen, und ein endgültiger Überprüfungsentwurf von Unicode war fertig.

Das Unicode -Konsortium wurde am 3. Januar 1991 in Kalifornien gegründet,[9] Im Oktober 1991 wurde der erste Band des Unicode -Standards veröffentlicht. Der zweite Band über Han -Ideographs wurde im Juni 1992 veröffentlicht.

1996 wurde in Unicode 2.0 ein Ersatzcharaktermechanismus implementiert, so dass Unicode nicht mehr auf 16 Bit beschränkt war. Dies erhöhte den Unicode -Codespace auf über eine Million Codepunkte, was die Kodierung vieler historischer Skripte ermöglichte (z. B.,,, Ägyptische Hieroglyphen) und Tausende von selten verwendeten oder veralteten Zeichen, die nicht als Codierung erwartet wurden. Unter den Charakteren, die ursprünglich nicht für Unicode bestimmt sind, werden selten Kanji oder chinesische Charaktere verwendet, von denen viele Teil von persönlichen und Ortsnamen sind und sie selten verwendet, aber viel wesentlicher als in der ursprünglichen Architektur von Unicode vorgesehen sind.[10]

Die Microsoft TrueType Specification Version 1.0 aus 1992 verwendete den Namen 'Apple Unicode' anstelle von 'Unicode' für die Plattform -ID in der Namenstabelle.

Unicode -Konsortium

Das Unicode -Konsortium ist eine gemeinnützige Organisation, die die Entwicklung von Unicode koordiniert. Zu den vollständigen Mitgliedern gehören die meisten Hauptcomputersoftware- und Hardwareunternehmen mit einem Interesse an Textverarbeitungsstandards, einschließlich Adobe, Apfel, Facebook, Google, IBM, Microsoft, Netflix, und SAP SE.[11]

Im Laufe der Jahre waren mehrere Länder oder Regierungsbehörden Mitglieder des Unicode -Konsortiums. Derzeit nur die Ministerium für Stiftungen und religiöse Angelegenheiten (Oman) ist ein volles Mitglied mit Stimmrechten.[11]

Das Konsortium hat das ehrgeizige Ziel, vorhandene Charakter -Codierungsschemata durch UTF -Schemata (Standard Unicode Transformation Format) zu ersetzen mehrsprachig Umgebungen.

Skripte abgedeckt

Viele moderne Anwendungen können eine erhebliche Teilmenge der vielen machen Skripte in Unicode, wie dieser Screenshot aus dem zeigt OpenOffice.org Anwendung.

Unicode umfasst derzeit die meisten wichtigsten Schreibsysteme heute im Gebrauch.[12]

Ab 2021 insgesamt 159 Skripte[13] sind in der neuesten Version von Unicode enthalten (Covering Alphabete, Abugidas und Silbe), obwohl es noch Skripte gibt, die noch nicht codiert sind, insbesondere diejenigen, die hauptsächlich in historischen, liturgischen und akademischen Kontexten verwendet werden. Weitere Ergänzungen von Zeichen zu den bereits codierten Skripten sowie Symbole, insbesondere für Mathematik und Musik (in Form von Notizen und rhythmischen Symbolen) auch auftreten.

Das Unicode Roadmap Committee (Michael Everson, Rick McGowan, Ken Whistler, V.S. Umamaheswaran)[14] Verwalten Sie die Liste der Skripte, die Kandidaten oder potenzielle Kandidaten für die Codierung und deren vorläufige Code -Blockaufgaben auf der Unicode Roadmap sind[15] Seite der Unicode -Konsortium Webseite. Für einige Skripte auf der Roadmap, wie z. Jurchen und Khitan kleines DrehbuchEs wurden codierende Vorschläge gemacht, und sie arbeiten durch den Genehmigungsprozess. Für andere Skripte, wie z. Maya- (neben Zahlen) und RongorongoEs wurde noch kein Vorschlag gemacht, und sie warten auf eine Vereinbarung über das Charakterrepertoire und andere Details der beteiligten Benutzergemeinschaften.

Einige moderne erfundene Skripte, die noch nicht in Unicode aufgenommen wurden (z. B.,, Tengwar) oder die sich nicht für die Aufnahme in Unicode qualifizieren, da keine reale Verwendung verwendet wird (z. B.,,, Klingon) sind in der aufgeführt Konscript Unicode Registryzusammen mit inoffiziell, aber weit verbreitet Private Nutzungsbereiche Codezuweisungen.

Da ist auch ein Mittelalterliche Unicode -Schriftinitiative konzentriert sich auf spezielle lateinische mittelalterliche Charaktere. Ein Teil dieser Vorschläge wurde bereits in Unicode aufgenommen.

Skript -Codierungsinitiative

Die Skript -Codierungsinitiative,[16] Ein Projekt von Deborah Anderson bei der Universität von Kalifornien, Berkeley wurde 2002 mit dem Ziel gegründet, Vorschläge für Skripte zu finanzieren, die noch nicht im Standard codiert wurden. Das Projekt ist in den letzten Jahren zu einer Hauptquelle für vorgeschlagene Ergänzungen des Standards geworden.[17]

Versionen

Das Unicode -Konsortium und das Internationale Standardisierungsorganisation (ISO) haben zusammen gemeinsame entwickelt Repertoire Nach der ersten Veröffentlichung von Der Unicode -Standard 1991; Unicode und die ISOs Universal codiertes Zeichensatz (UCS) Verwenden Sie identische Zeichennamen und Codepunkte. Die Unicode -Versionen unterscheiden sich jedoch auf zwei signifikante Weise von ihren ISO -Äquivalenten.

Während das UCS eine einfache Zeichenkarte ist, gibt Unicode die Regeln, Algorithmen und Eigenschaften an, die erforderlich sind, um die Interoperabilität zwischen verschiedenen Plattformen und Sprachen zu erreichen. Daher, Der Unicode -Standard Beinhaltet weitere Informationen, Abdeckung - Tiefe - topische, z. B. bitweise Codierung, Kollation und Rendern. Es bietet auch einen umfassenden Katalog von Charaktereigenschaften, einschließlich der für die Unterstützung benötigten Bidirektionaler Textsowie visuelle Diagramme und Referenzdatensätze zur Unterstützung von Implementierern. Bisher, Der Unicode -Standard wurde als Druckvolumen mit der vollständigen Kernspezifikation, Standard -Anhänge und Code -Diagrammen verkauft. Unicode 5.0, das 2006 veröffentlicht wurde, war jedoch die letzte auf diese Weise gedruckte Version. Beginnend mit Version 5.2 kann nur die Kernspezifikation, die als Print-on-Demand-Taschenbuch veröffentlicht wird, gekauft werden.[18] Der vollständige Text hingegen wird als kostenloser PDF auf der Unicode -Website veröffentlicht.

Ein praktischer Grund für diese Publikationsmethode unterstreicht den zweiten signifikanten Unterschied zwischen UCS und Unicode - die Häufigkeit, mit der aktualisierte Versionen veröffentlicht werden und neue Zeichen hinzugefügt werden. Der Unicode -Standard hat regelmäßig jährliche erweiterte Versionen veröffentlicht, gelegentlich mit mehr als einer Version in einem Kalenderjahr und mit seltenen Fällen, in denen die geplante Veröffentlichung verschoben werden musste. Zum Beispiel im April 2020, nur einen Monat nach der Veröffentlichung von Version 13.0 Covid-19 Pandemie.

Bisher wurden die folgenden Haupt- und Nebenversionen des Unicode -Standards veröffentlicht. Update -Versionen, die keine Änderungen des Charakterkonpertoires enthalten, sind nach der dritten Nummer (z. B. "Version 4.0.1") zugeordnet und in der folgenden Tabelle weggelassen.[19]

Ausführung Datum Buch Dazugehörigen ISO/IEC 10646 Auflage Skripte Figuren
Gesamt[Tablenote 1] Bemerkenswerte Ergänzungen
1.0.0[20] Oktober 1991 ISBN0-201-56788-1 (Band 1) 24 7,129[Tablenote 2] Das erste Repertoire deckt diese Skripte ab: Arabisch, Armenisch, Bengali, Bopomofo, kyrillisch, Devanagari, georgisch, Griechisch und koptisch, Gujarati, Gurmukhi, Hangul, hebräisch, Hiragana, Kannada, Katakana, Lao, Latein, Malayalam, Oriya, Tamilisch, Telugu, Thai, und Tibetaner.[20]
1.0.1[21] Juni 1992 ISBN0-201-60845-6 (Band 2) 25 28,327
(21.204 hinzugefügt;
6 entfernt)
Der Anfangssatz von 20.902 CJK Unified Ideographs ist definiert.[21]
1.1[22] Juni 1993 ISO/IEC 10646-1: 1993 24 34,168
(5.963 hinzugefügt;
89 entfernt;
33 neu klassifiziert
als Kontrolle
Figuren)
4.306 mehr Hangul Silben, die zum Originalsatz von 2.350 Zeichen hinzugefügt wurden. Tibetaner ENTFERNT.[22]
2.0[23] Juli 1996 ISBN0-201-48345-9 ISO/IEC 10646-1: 1993 plus Änderungen 5, 6 und 7 25 38.885
(11.373 hinzugefügt;
6.656 entfernt)
Originalsatz von Hangul Silben entfernt und ein neuer Satz von 11.172 Hangul -Silben, die an einem neuen Ort hinzugefügt wurden. Tibetaner Zurück an einem neuen Ort und mit einem anderen Charakterrepertoire. Ersatzcharaktermechanismus definiert und Ebene 15 und Ebene 16 Private Nutzungsbereiche zugewiesen.[23]
2.1[24] Mai 1998 ISO/IEC 10646-1: 1993 plus Änderungen 5, 6 und 7 sowie zwei Charaktere aus Änderung 18 25 38.887
(2 hinzugefügt)
Eurozeichen und Objektersatzcharakter hinzugefügt.[24]
3.0 September 1999 ISBN0-201-61633-5 ISO/IEC 10646-1: 2000 38 49.194
(10.307 hinzugefügt)
Cherokee, Äthiopisch, Khmer, mongolisch, birmanisch, Ogham, Runik, Sinhala, Syrien, Thaana, Einheitliche Lehrschildlebnisse für kanadische Aborigines, und Yi Silben hinzugefügt sowie ein Satz von Blindenschrift Muster.[25]
3.1 März 2001 ISO/IEC 10646-1: 2000

ISO/IEC 10646-2: 2001

41 94.140
(44.946 hinzugefügt)
Deseret, gotisch und Alte kursiv hinzugefügt, sowie Sätze von Symbolen für Western Musik und Byzantinische Musikund 42.711 zusätzlich CJK Unified Ideographs.[26]
3.2 März 2002 ISO/IEC 10646-1: 2000 plus Änderung 1

ISO/IEC 10646-2: 2001

45 95,156
(1.016 hinzugefügt)
Philippine Skripte Buhid, Hanunó'o, Tagalog, und Tagbanwa hinzugefügt.[27]
4.0 April 2003 ISBN0-321-18578-1 ISO/IEC 10646: 2003 52 96.382
(1.226 hinzugefügt)
Zypriotische Silbe, Limbu, Linear b, Osmanya, Shavier, Tai le, und Ugaritisch hinzugefügt, ebenso wie Hexagrammsymbole.[28]
4.1 März 2005 ISO/IEC 10646: 2003 plus Änderung 1 59 97.655
(1.273 hinzugefügt)
Buginese, Glagolitik, Kharoshthi, Neuer Tai Lue, Alter Perser, Syloti Nagri, und Tifinagh hinzugefügt und koptisch wurde abgebrochen von griechisch. Alt Griechische Zahlen und Musiksymbole wurden auch hinzugefügt.[29]
5.0 Juli 2006 ISBN0-321-48091-0 ISO/IEC 10646: 2003 plus Änderungen 1 und 2 sowie vier Zeichen aus Änderung 3 64 99.024
(1.369 hinzugefügt)
Balinesisch, Keilschrift, N'ko, PHAGS-PA, und phönizisch hinzugefügt.[30]
5.1 April 2008 ISO/IEC 10646: 2003 plus Änderungen 1, 2, 3 und 4 75 100.648
(1.624 hinzugefügt)
Karian, Cham, Kayah li, Lepcha, Lycian, Lydian, Ol Chiki, Rejang, Saurashtra, Sundanese, und Vai hinzugefügt, sowie Sätze von Symbolen für die Phaistos Disc, Mahjong -Fliesen, und Dominofliesen. Es gab auch wichtige Ergänzungen für birmanisch, Ergänzungen von Buchstaben und Schreibabkürzungen im Mittelalter verwendet Manuskripteund die Zugabe von Hauptstadt ß.[31]
5.2 Oktober 2009 ISBN978-1-936213-00-9 ISO/IEC 10646: 2003 plus Änderungen 1, 2, 3, 4, 5 und 6 90 107,296
(6.648 hinzugefügt)
Avestan, Bamum, Ägyptische Hieroglyphen (das Gardiner Set, mit 1.071 Zeichen), Kaiserliche Aramäisch, Inschrift Pahlavi, Inschrift Parthian, Javaner, Kaithi, Lisu, Meetei Mayek, Altes Südarabier, Altes Turkic, Samariter, Tai Tham und Tai Viet hinzugefügt. 4,149 zusätzlich CJK Unified Ideographs (CJK-C) sowie erweitert Jamo für Alter Hangulund Charaktere für Vedischer Sanskrit.[32]
6.0 Oktober 2010 ISBN978-1-936213-01-6 ISO/IEC 10646: 2010 plus die Indisches Rupieschild 93 109.384
(2.088 hinzugefügt)
Batak, Brahmi, Mandaik, Spielkarte Symbole, Transport und Karte Symbole, Alchemische Symbole, Emoticons und Emoji. 222 zusätzlich CJK Unified Ideographs (CJK-D) hinzugefügt.[33]
6.1 Januar 2012 ISBN978-1-936213-02-3 ISO/IEC 10646: 2012 100 110,116
(732 hinzugefügt)
Chakma, Meroitischer Kursiv, Meroitische Hieroglyphen, Miao, Sharada, Sora Sompeng, und Takri.[34]
6.2 September 2012 ISBN978-1-936213-07-8 ISO/IEC 10646: 2012 plus die Türkischer Lira -Zeichen 100 110,117
(1 hinzugefügt)
Türkischer Lira -Zeichen.[35]
6.3 September 2013 ISBN978-1-936213-08-5 ISO/IEC 10646: 2012 plus sechs Zeichen 100 110,122
(5 hinzugefügt)
5 bidirektionale Formatierungszeichen.[36]
7.0 Juni 2014 ISBN978-1-936213-09-2 ISO/IEC 10646: 2012 plus Änderungen 1 und 2 sowie die Rubelzeichen 123 112.956
(2.834 hinzugefügt)
Bassa vah, Kaukasischer Albaner, Du -Playan, Elbasan, Grantha, Khojki, Khudawadi, Linear a, Mahajani, Manichaean, Mende Kikakui, Modi, Mro, Nabatäisch, Altes Nordarabier, Altpermisch, Pahawh Hmong, Palmyren, Pau cin hau, Psalter Pahlavi, Siddham, Tirhuta, Warang Citi, und Dingbats.[37]
8.0 Juni 2015 ISBN978-1-936213-10-8 ISO/IEC 10646: 2014 plus Änderung 1 sowie die Larizeichen, neun CJK einheitliche Ideografien und 41 Emoji -Charaktere[38] 129 120,672
(7.716 hinzugefügt)
Ahom, Anatolische Hieroglyphen, Hatran, Multani, Alter Ungarisch, Signwriting, 5,771 CJK Unified Ideographs, eine Reihe von Kleinbuchstaben für Cherokeeund fünf Emoji Hautfarbe Modifikatoren.[39]
9.0 Juni 2016 ISBN978-1-936213-13-9 ISO/IEC 10646: 2014 plus Änderungen 1 und 2 sowie Adlam, Newa, japanische Fernsehsymbole sowie 74 Emoji und Symbole[40] 135 128,172
(7.500 hinzugefügt)
Adlam, BhaiKsuki, MARCHEN, Newa, Osage, Tangutund 72 Emoji.[41][42]
10.0 Juni 2017 ISBN978-1-936213-16-0 ISO/IEC 10646: 2017 plus 56 Emoji Charaktere, 285 Hentaigana Charaktere und 3 Zanabazar Square Charaktere[43] 139 136.690
(8.518 hinzugefügt)
Zanabazar Square, Soyombo, Masaram Gondi, Nüshu, Hentaigana (Nicht standardmäßig Hiragana), 7.494 CJK Unified Ideographs, 56 Emoji, und Bitcoin Symbol.[44]
11.0 Juni 2018 ISBN978-1-936213-19-1 ISO/IEC 10646: 2017 plus Änderung 1 sowie 46 mtavruli georgianische Großbuchstaben, 5 CJK Unified Ideographs und 66 Emoji -Charaktere.[45] 146 137,374
(684 hinzugefügt)
DGRA, Georgian Mtavruli Großbuchstaben, Gunjala Gondi, Hanifi Rohingya, Indic SIYAQ -Zahlen, Makasar, Medefaidrin, Alter Sogdian und Sogdianer, Maya -Ziffern, 5 dringend benötigt CJK Unified Ideographs, Symbole für Xiangqi (Chinesisches Schach) und Sternbewertungenund 145 Emoji.[46]
12.0 März 2019 ISBN978-1-936213-22-1 ISO/IEC 10646: 2017 plus Änderungen 1 und 2 sowie 62 zusätzliche Zeichen.[47] 150 137.928
(554 hinzugefügt)
Elynmaisch, Nandinagari, Nyikeng Puachue Hmong, Wancho, Miao Drehbuch Ergänzungen für mehrere Miao- und Yi -Sprachen Chinas, Hiragana und Katakana Kleine Briefe zum Schreiben archaischer Japaner, Tamilisch historische Brüche und Symbole, Lao Briefe für Pali, Lateinische Buchstaben für ägyptologische und ugaritische Transliteration, Hieroglyphenformatkontrollen und 61 Emoji.[48]
12.1 Mai 2019 ISBN978-1-936213-25-2 150 137.929
(1 hinzugefügt)
Fügt ein einzelnes Zeichen bei u+32ff für die quadratische Ligaturform des Namens des Reiwa -Ära.[49]
13.0[50] März 2020 ISBN978-1-936213-26-9 ISO/IEC 10646: 2020[51] 154 143.859
(5.930 hinzugefügt)
Chorasmianer, Taucht Akuru auf, Khitan kleines Drehbuch, Yezidi, 4.969 CJK Unified Ideographs hinzugefügt (einschließlich 4.939 in Ext. G), Arabische Skript -Ergänzungen, die zum Schreiben verwendet werden Hausa, Wolofund andere Sprachen in Afrika und andere Ergänzungen, die zum Schreiben verwendet wurden Hindko und Punjabi In Pakistan werden Bopomofo -Ergänzungen für kantonesische, kreative Lizenzsymbole, grafische Charaktere für die Kompatibilität mit TeleText und Heimcomputersystemen aus den 1970er und 1980er Jahren und 55 Emoji verwendet.[50]
14.0[52] September 2021 ISBN978-1-936213-29-0 159 144.697
(838 hinzugefügt)
Toto, Cypro-minoan, Vithkuqi, Alter Uyghur, Tangsa, Lateinische Skript -Ergänzungen bei SMP -Blöcken (Ext-f, Ext-g) zur Verwendung in erweitert IPA, Arabische Drehbuch -Ergänzungen für die Verwendung in Sprachen in Afrika und im Iran, Pakistan, Malaysia, Indonesien, Java und Bosnien und zum Schreiben von Ehren, Ergänzungen für den koranischen Gebrauch, andere Ergänzungen zur Unterstützung von Sprachen in Nordamerika, den Philippinen, Indien und Mongolei, Zugabe der Kirgisistani Som Währungssymbol, Unterstützung für Znamenny Musikalische Notation und 37 Emoji.[52]
  1. ^ Die Anzahl der für jede Version von Unicode aufgeführten Zeichen ist die Gesamtzahl der Grafik- und Formatzeichen (d. H. Ausgenommen, ohne private Nutzungsfiguren, Steuerzeichen, Nichtcharakterien und Ersatzcodepunkte).
  2. ^ Nicht "Raum" oder 33 nicht druckende Zeichen zählen (7.163 Gesamt)[20]

Die nächste Version von Unicode, 15.0.0, soll am 13. September 2022 veröffentlicht werden. Mehrere Anhänge werden aktualisiert, einschließlich Unicode -Sicherheitsmechanismen (UTS #39), und insgesamt 4489 neue Zeichen werden codiert, darunter 20 neue Emoji -Zeichen, zwei Neue Skripte, CJK Unified Ideographs Erweiterung und mehrere Ergänzungen zu vorhandenen Blöcken.[53][54]

Architektur und Terminologie

Codespace- und Codepunkte

Der Unicode -Standard definiert a Codespace,[55] eine Reihe numerischer Werte von 0 bis 10ffff reichen16,[56] genannt Codepunkte[57] und bezeichnet als U+0000 durch U+10ffff ("U+"[58] gefolgt vom Codepunktwert in hexadezimal, was vorbereitet mit führende Nullen bis mindestens vier Ziffern; e. g., U+00F7 Für das Divisionszeichen ÷ aber U+13254 (nicht U+013254) für die Ägyptische Hieroglyphe Hiero O4.png.[59]). Von diesen 216 + 220 Definierte Codepunkte, die Codepunkte von U+D800 durch U+dfff, die verwendet werden, um Ersatzpaare in zu codieren UTF-16, werden vom Unicode -Standard reserviert und dürfen nicht zur Codierung gültiger Zeichen verwendet werden, was zu einer Netto -Gesamt 2 führt16 - 211 + 220 = 1.112.064 zuweisbare Codepunkte.

Codeflugzeuge und Blöcke

Der Unicode -Codespace ist in siebzehn unterteilt Flugzeuge, nummeriert 0 bis 16:

Alle Codepunkte im BMP werden als einzelne Codeeinheit in zugegriffen UTF-16 Codierung und kann in einem, zwei oder drei Bytes in codiert werden UTF-8. Codepunkte in Flugzeugen 1 bis 16 (ergänzende Ebenen) werden als Ersatzpaare in UTF-16 zugegriffen und in vier Bytes in UTF-8 codiert.

Innerhalb jeder Ebene werden Zeichen innerhalb der Namen zugewiesen Blöcke von verwandten Zeichen. Obwohl Blöcke eine willkürliche Größe sind, sind sie immer ein Vielfaches von 16 Codepunkten und häufig ein Vielfaches von 128 Codepunkten. Zeichen, die für ein bestimmtes Skript erforderlich sind, können über verschiedene Blöcke verteilt werden.

Allgemeine Kategorie Eigenschaft

Jeder Codepunkt hat einen einzelnen Allgemeine Kategorie Eigentum. Die Hauptkategorien werden bezeichnet: Buchstaben, Marke, Anzahl, Zeichensetzung, Symbol, Trennzeichen und andere. Innerhalb dieser Kategorien gibt es Unterteilungen. In den meisten Fällen müssen andere Eigenschaften verwendet werden, um die Merkmale eines Codespunkts ausreichend anzugeben. Die möglichen allgemeinen Kategorien sind:

Allgemeine Kategorie (Unicode Charaktereigenschaft)[a]
Wert Kategorie Major, Moll Grundtyp[b] Zeichen zugewiesen[b] Zählen[c]
(ab 14.0)
Bemerkungen
 
L, Brief; LC, Cased Letter (Nur Lu, LL und LT)[d]
Lu Brief, Großbuchstaben Grafik Charakter 1.831
Ll Brief, Kleinbuchstaben Grafik Charakter 2,227
Lt Brief, Titlecase Grafik Charakter 31 Ligaturen In Großbuchstaben enthält, gefolgt von Kleinbuchstaben (z. B.,, Dž, Lj, Nj, und Dz))
Lm Brief, Modifikator Grafik Charakter 334 A Modifikator Brief
LO Brief, andere Grafik Charakter 127.333 Ein Ideograf oder ein Brief in a Unicase Alphabet
M, Markieren
Mn Mark, nicht spalt Grafik Charakter 1.950
MC Mark, Abstand kombiniert Grafik Charakter 445
Mir Mark, umgeben Grafik Charakter 13
N, Nummer
Nd Nummer, Dezimalstelligkeit Grafik Charakter 660 All diese und nur diese haben Numerischer Typ = De[e]
Nl Nummer, Brief Grafik Charakter 236 Ziffern aus Buchstaben oder Buchstaben wie Symbolen (z. B.,, römische Zahlen))
Nein Nummer, andere Grafik Charakter 895 Z.B., vulgäre Brüche, Superscript und Index Ziffern
P, Zeichensetzung
PC Interpunktion, Stecker Grafik Charakter 10 Enthält "_" unterstreichen
PD Interpunktion, Dash Grafik Charakter 26 Enthält mehrere Bindestrich Figuren
Ps Interpunktion, offen Grafik Charakter 79 Öffnung Klammer Figuren
Sport Interpunktion, schließen Grafik Charakter 77 Schließen von Halterungen
Pi Interpunktion, Erstes Zitat Grafik Charakter 12 Öffnung Anführungszeichen. Enthält nicht die ASCII -Zitatmarke "neutral". Kann sich je nach Verwendung wie PS oder PE verhalten
Pf Interpunktion, endgültiges Zitat Grafik Charakter 10 Schließungszitatsmarke. Kann sich je nach Verwendung wie PS oder PE verhalten
Po Interpunktion, andere Grafik Charakter 605
S, Symbol
Sm Symbol, Mathematik Grafik Charakter 948 Mathematische Symbole (z.B., +, , =, ×, ÷, , , ). Enthält keine Klammern und Klammern, die sich in Kategorien ps und pe befinden. Schließt auch nicht ein !, *, -, oder /, die trotz häufiger Verwendung als mathematische Operatoren in erster Linie als "Interpunktion" angesehen werden.
Sc Symbol, Währung Grafik Charakter 63 Währungssymbole
SK Symbol, Modifikator Grafik Charakter 125
So Symbol, andere Grafik Charakter 6,605
Z, Separator
Zs Trennzeichen, Raum Grafik Charakter 17 Schließt den Raum ein, aber nicht TAB, Cr, oder Lf, die CC sind
Zl Trennzeichen, Linie Format Charakter 1 Nur U+2028 Zeilenabscheider (LSEP)
ZP Trennzeichen, Absatz Format Charakter 1 Nur U+2029 Absatzabscheider (PSEP)
C, Sonstiges
CC Andere, Kontrolle Kontrolle Charakter 65 (wird sich nie ändern)[e] Kein Name,[f]
Vgl Andere Format Format Charakter 163 Includes the weicher Bindestrich, Verbinden von Kontrollfiguren (Zwnj und Zwj), kontrollieren Zeichen zur Unterstützung bidirektionaler Text, und Sprachetikett Figuren
CS Andere, Ersatz Surrogat Nicht (nur verwendet in UTF-16)) 2.048 (wird sich nie ändern)[e] Kein Name,[f]
CO Andere, private Verwendung Privater Gebrauch Charakter (aber keine Interpretation angegeben) 137.468 insgesamt (wird sich nie ändern)[e] (6.400 in Bmp, 131.068 in Flugzeuge 15–16) Kein Name,[f]
CN Andere, nicht zugewiesen Nichtcharakter Nicht 66 (wird sich nie ändern)[e] Kein Name,[f]
Reserviert Nicht 829.768 Kein Name,[f]
  1. ^ "Tabelle 4-4: Allgemeine Kategorie" (PDF). Der Unicode -Standard. Unicode -Konsortium. September 2021.
  2. ^ a b "Tabelle 2-3: Arten von Codepunkten" (PDF). Der Unicode -Standard. Unicode -Konsortium. September 2021.
  3. ^ "AbgeleiteteNeralcategory.txt". Das Unicode -Konsortium. 2021-07-10.
  4. ^ "5.7.1 Allgemeine Kategoriewerte". UTR #44: Unicode -Zeichendatenbank. Unicode -Konsortium. 2020-03-04.
  5. ^ a b c d e Unicode -Charakter -Codierungsstabilitätsrichtlinien: Eigenschaftswertstabilität Stabilitätspolitik: Einige GC -Gruppen werden sich nie ändern. gc = nd entspricht dem numerischen Typ = DE (dezimal).
  6. ^ a b c d e "Tabelle 4-9: Konstruktion von Codepunktetiketten" (PDF). Der Unicode -Standard. Unicode -Konsortium. September 2021. A Codepunktbezeichnung Kann verwendet werden, um einen namenlosen Codepunkt zu identifizieren. Z.B. <Kontrolle-HHHH>, <Rontroll-0088>. Der Name bleibt leer, was verhindern kann, dass es versehentlich einen Kontrollnamen mit einem echten Kontrollcode ersetzt. Unicode verwendet auch <kein Zeichen> für <noncharacter>.

Codepunkte im Bereich U+D800- U+DBFF (1.024 Codepunkte) sind als hoch-Surrogat Codepunkte und Codepunkte im Bereich U+DC00-U+DFFF (1.024 Codepunkte) werden als niedrige Codepunkte mit niedrigem Surrogat bezeichnet. Ein hoher Surrogate-Codepunkt, gefolgt von einem Low-Surrogate-Codepunkt, bildet ein Ersatzpaar in UTF-16 um Codepunkte darzustellen, die größer als U+FFFF sind. Ansonsten können diese Codepunkte nicht verwendet werden (diese Regel wird in der Praxis häufig ignoriert, insbesondere wenn sie nicht UTF-16 verwenden).

Ein kleiner Satz von Codepunkten wird garantiert für Codierungszeichen garantiert, obwohl Anwendungen diese Codepunkte intern verwenden können, wenn sie dies wünschen. Es gibt sechsundsechzig davon Nichtcharakterien: U+fdd0 - u+fdef und jeder Codepunkt, der im Wert fffe oder ffff endet (d. H. U+fffe, u+ffff, u+1fffe, u+1ffff, ... u+10fffe, u+10ffff). Der Satz von Nichtcharakterien ist stabil, und es werden keine neuen Nichtcharakterierungen definiert.[60] Wie Ersatzstoffe wird die Regel, dass diese nicht verwendet werden können, oft ignoriert, obwohl die Operation der Byte -Bestellmarke (BOM) geht davon aus, dass U+FFFE niemals der erste Codepunkt in einem Text sein wird.

Mit Ausnahme von Ersatz- und Nichtcharakteristikern bleibt 1.111.998 Codepunkte zur Verwendung zur Verfügung.

Privater Gebrauch Codepunkte werden als zugewiesene Zeichen angesehen, sie haben jedoch keine Interpretation, die vom Unicode -Standard angegeben ist[61] Jeder Austausch solcher Zeichen erfordert also eine Vereinbarung zwischen Absender und Empfänger über ihre Interpretation. Es gibt drei private Gebrauchsbereiche im Unicode-Codespace:

  • Privatnutzungsbereich: U+E000 - U+F8ff (6.400 Zeichen),
  • Ergänzende private Gebrauchsfläche-A: U+F0000-U+FFFFD (65.534 Zeichen),
  • Ergänzende private Anwendungsbereich-B: U+100000-U+10FFFD (65.534 Zeichen).

Grafische Zeichen sind von Unicode definiert, um eine bestimmte Semantik zu haben, und haben entweder ein sichtbares Glyphe einen sichtbaren Raum formen oder darstellen. Ab Unicode 14.0 gibt es 144.532 Grafikzeichen.

Format Charaktere sind Charaktere, die kein sichtbares Erscheinungsbild haben, aber möglicherweise Auswirkungen auf das Erscheinungsbild oder das Verhalten benachbarter Charaktere haben. Zum Beispiel, U+200c Null Breite Nicht-Joiner und U+200d Null -Breiten -Tischler Kann verwendet werden, um das Standardformungsverhalten benachbarter Zeichen zu ändern (z. B. um Ligaturen zu hemmen oder die Ligaturbildung zu fordern). In Unicode 14.0 gibt es 165 Formatzeichen.

65 Codepunkte (U+0000-U+001F und U+007F-U+009F) sind als reserviert Kontrolle Codes und entsprechen dem C0- und C1 -Kontrollcodes definiert in ISO/IEC 6429. U+0009 (Registerkarte), U+000A (Zeilenfutter) und U+000D (Wagenrendite) werden in unicode-kodierten Texten häufig verwendet. In der Praxis sind die C1-Codepunkte oft nicht ordnungsgemäß translatiert (Mojibake) als das Erbe Windows-1252 Charaktere, die von einigen englischen und westeuropäischen Texten verwendet werden.

Grafikzeichen, Formatzeichen, Kontrollcodezeichen und private Verwendungszeichen werden kollektiv als bekannt als Zugewiesene Zeichen. Reserviert Codepunkte sind die Codepunkte, die zur Verwendung verfügbar sind, aber noch nicht zugewiesen sind. Ab Unicode 14.0 gibt es 829.768 reservierte Codepunkte.

Abstrakte Zeichen

Die von Unicode definierte Grafik- und Formatzeichen entspricht nicht direkt dem Repertoire von abstrakte Zeichen Das ist unter Unicode dargestellt. Unicode codiert Zeichen, indem er einen abstrakten Charakter mit einem bestimmten Codepunkt assoziiert.[62] Nicht alle abstrakten Zeichen werden jedoch als einzelner Unicode -Zeichen codiert, und einige abstrakte Zeichen können durch eine Sequenz von zwei oder mehr Zeichen in Unicode dargestellt werden. Zum Beispiel ein lateinischer kleiner Buchstabe "I" mit einem Ogonek, a Punkt oben, und ein Akuter Akzent, was benötigt in litauisch, wird durch die Zeichensequenz U+012F, U+0307, ​​U+0301 dargestellt. Unicode behält eine Liste von einzigartig bezeichneten Zeichensequenzen für abstrakte Zeichen bei, die nicht direkt in Unicode codiert sind.[63]

Alle Grafik-, Format- und privaten Nutzungszeichen haben einen eindeutigen und unveränderlichen Namen, mit dem sie identifiziert werden können. Diese Unveränderlichkeit wurde seit Unicode Version 2.0 durch die Namensstabilitätspolitik garantiert.[60] In Fällen, in denen der Name ernsthaft defekt und irreführend ist oder einen schwerwiegenden typografischen Fehler aufweist, kann ein formeller Alias ​​definiert werden, und die Anwendungen werden aufgefordert, den formellen Alias ​​anstelle des offiziellen Charaktersamens zu verwenden. Zum Beispiel, U+A015 Yi Silbe Wu hat den formellen Alias Yi Silbe Iteration Marke, und U+Fe18 Präsentationsform für vertikale rechte weiße linsenförmige BHKCET (sic) hat den formalen Alias Präsentationsform für vertikale rechte weiße linsenförmige BHCkET.[64]

Vorgefertigte versus zusammengesetzte Zeichen

Unicode enthält einen Mechanismus zum Ändern von Zeichen, die das unterstützte Glyph -Repertoire erheblich erweitert. Dies deckt die Verwendung von ab Kombination diakritischer Markierungen Dies kann vom Benutzer nach dem Basiszeichen hinzugefügt werden. Mehrere kombinierte Diakritika können gleichzeitig auf denselben Charakter angewendet werden. Unicode enthält auch vorkomponiert Versionen der meisten Buchstaben/diakritischen Kombinationen im normalen Gebrauch. Diese machen die Konvertierung zu und von Legacy -Encodings einfacher und ermöglichen es Anwendungen, Unicode als internes Textformat zu verwenden, ohne die Kombination von Zeichen implementieren zu müssen. Zum Beispiel, é kann in unicode als dargestellt werden U+0065 (Lateinischer kleiner Buchstabe e) gefolgt von u+0301 (Kombinieren akuter Akzent), aber es kann auch als vorkomponiertes Zeichen U+00E9 dargestellt werden (Lateinischer kleiner Buchstabe E mit akuter). Daher haben Benutzer in vielen Fällen mehrere Möglichkeiten, denselben Charakter zu codieren. Um damit umzugehen, liefert Unicode den Mechanismus von kanonische Äquivalenz.

Ein Beispiel dafür entsteht mit Hangul, das koreanische Alphabet. Unicode bietet einen Mechanismus für das Komponieren von Hangul -Silben mit ihren einzelnen Unterkomponenten, bekannt als Hangul Jamo. Es liefert jedoch auch 11.172 Kombinationen von vorkomponierten Silben aus dem häufigsten Jamo.

Das CJK -Charaktere Derzeit haben Codes nur für ihre vorkomponierte Form. Dennoch umfassen die meisten dieser Charaktere einfachere Elemente (genannt Radikale), im Prinzip hätte Unicode sie wie bei Hangul zersetzen können. Dies hätte die Anzahl der erforderlichen Codepunkte stark reduziert, während praktisch jeder denkbare Charakter angezeigt wird (was einige der durch verursachten Probleme beseitigen könnte Han -Vereinigung). Eine ähnliche Idee wird von einigen verwendet Eingabemethoden, wie zum Beispiel CANGJIE und Wubi. Versuche, dies für die Charaktercodierung zu tun, sind jedoch über die Tatsache gestolpert, dass sich chinesische Charaktere nicht so einfach oder regelmäßig zersetzen wie Hangul.

Eine Menge von Radikale wurde in Unicode 3.0 (CJK -Radikalen zwischen U+2E80 und U+2Eff, Kangxi -Radikalen in U+2F00 bis U+2FDF und ideografische Beschreibung Zeichen von U+2ff0 bis U+2FFB) bereitgestellt, aber der Unicode -Standard (Kap. 12.2 von Unicode 5.2) warnt vor der Verwendung Ideografische Beschreibung Sequenzen Als alternative Darstellung für zuvor codierte Zeichen:

Dieser Prozess unterscheidet sich von einer formalen Codierung einer Ideographie. Es gibt keine kanonische Beschreibung nichtcodierter Ideografien; Es gibt keine semantischen ideographischen Semantik; Für beschriebene Ideografien gibt es keine Äquivalenz. Konzeptionell ähneln ideografische Beschreibungen eher dem englischen Ausdruck "und" mit einem akuten Akzent darauf "als der Zeichensequenz <U+0065, U+0301>.

Ligaturen

Viele Skripte, einschließlich Arabisch und Devanāgarī, haben spezielle orthografische Regeln, die erforderlich sind, dass bestimmte Kombinationen von Buchstabenformen zu Spezial kombiniert werden. Ligaturformen. Die Regeln für die Bildung von Ligaturen können ziemlich komplex sein und spezielle Skript-Form-Technologien wie ACE (arabische Kalligraphic Engine by Decotype in den 1980er Jahren erfordern und zur Erzeugung aller arabischen Beispiele in den gedruckten Ausgaben des Unicode-Standards), die zu den arabischen Beispielen generiert werden konzeptioneller Beweiß zum Offener Typ (von Adobe und Microsoft), Graphit (durch SIL International), oder Aat (von Apple).

Anweisungen sind auch in Schriftarten eingebettet, um das zu sagen Betriebssystem wie man verschiedene Zeichensequenzen richtig ausgibt. Eine einfache Lösung für die Platzierung von Kombinieren von Markierungen oder Diakritiken besteht darin, die Markierungen eine Breite von Null zugewiesen und die Glyphe selbst links oder rechts von der linken Seitenbekämpfung platziert (abhängig von der Richtung des Drehbuchs, mit dem sie verwendet werden sollen). Eine auf diese Weise behandelte Marke erscheint über jedem Charakter, der ihm vorausgeht, aber seine Position nicht zur Breite oder Höhe des Basisglyphens anpasst. Es kann visuell umständlich sein und einige Glyphen überlappen. Echtes Stapeln ist unmöglich, kann aber in begrenzten Fällen angenähert werden (z. B. können thailändische Top-Combining-Vokale und Tonmarken zunächst in verschiedenen Höhen sein). Im Allgemeinen ist dieser Ansatz nur bei monospatierten Schriftarten wirksam, kann jedoch als Fallback -Rendering -Methode verwendet werden, wenn komplexere Methoden fehlschlagen.

Standardisierte Teilmengen

Mehrere Untergruppen von Unicode sind standardisiert: Microsoft Windows seitdem Windows NT 4.0 Unterstützung WGL-4 mit 657 Charakteren, die alle zeitgenössischen europäischen Sprachen mithilfe des lateinischen, griechischen oder kyrillischen Skripts unterstützen. Andere standardisierte Untergruppen von Unicode umfassen die mehrsprachigen europäischen Teilmengen:[65] MES-1 (nur lateinische Skripte, 335 Zeichen), MES-2 (lateinische, griechische und kyrillische 1062 Zeichen)[66] und MES-3A & MES-3B (zwei größere Teilmengen, hier nicht gezeigt). Beachten Sie, dass MES-2 jeden Charakter in MES-1 und WGL-4 enthält.

Der Entwurfsstandard DIN 91379 Gibt eine Untergruppe von Unicode -Buchstaben, Sonderzeichen und Sequenzen von Buchstaben und diakritischen Zeichen an, um die korrekte Darstellung von Namen zu ermöglichen und den Datenaustausch in Europa zu vereinfachen. Diese Spezifikation unterstützt alle offiziellen Sprachen von europäische Union Länder sowie die Amtssprachen Islands, Liechtenstein, Norwegen und Schweiz sowie die deutschen Minderheitensprachen. Um die Transliteration von Namen in anderen Schreibsystemen in das lateinische Skript gemäß den relevanten ISO -Standards zuzulassen, werden alle erforderlichen Kombinationen von Basisbuchstaben und diakritischen Zeichen bereitgestellt. Im Jahr 2021 hat sich dieser Standard von DIN Spec 91379 bis zum Entwurf von DIN 91379 entwickelt. [67]

WGL-4, MES-1 und MES-2
Die Zeile Zellen Bereich (s)
00 20–7e Grundlatein (00–7f)
A0 - FF Latin-1 Supplement (80 - FF)
01 00–13, 14–15, 16–2b, 2c - 2d, 2e - 4d, 4e - 4f, 50–7e, 7f Latin Extended-A (00–7f)
8f, 92, B7, de-ef, FA -FF Latein erweitert-b (80 - FF ...))
02 18–1b, 1e - 1f Latein erweitert-b (... 00–4f)
59, 7c, 92 IPA -Erweiterungen (50 - AF)
BB -BD, C6, C7, C9, D6, D8 - DB, DC, Dd, DF, EE Abstandsmodifikatorbuchstaben (B0 - FF)
03 74–75, 7a, 7e, 84–8a, 8c, 8e - A1, A3 - CE, D7, da - e1 griechisch (70 - FF)
04 00–5f, 90–91, 92 - C4, C7 - C8, CB - CC, D0 - EB, EE - F5, F8 - F9 kyrillisch (00 - FF)
1e 02–03, 0a - 0b, 1e - 1f, 40–41, 56–57, 60–61, 6a - 6b, 80–85, 9b, F2 - F3 Latein erweiterte zusätzlich (00 - FF)
1f 00–15, 18–1d, 20–45, 48–4d, 50–57, 59, 5b, 5d, 5f - 7d, 80 - B4, B6 - C4, C6 - D3, D6 - DB, DD -Ef, ​​DD - EF, F2 - F4, F6 - Fe Griechisch erweitert (00 - FF)
20 13–14, fünfzehn, 17,, 18–19, 1a - 1b, 1c - 1d, 1e, 20–22, 26, 30, 32–33, 39–3a, 3c, 3e, 44, 4a Allgemeine Zeichensetzung (00–6f)
7f, 82 Superscripts und Indexs (70–9f)
A3 - A4, A7, AC, Af Währungssymbole (A0 - CF)
21 05, 13, 16, 22, 26, 2e Buchstabenähnliche Symbole (00–4f)
5b - 5e Zahlenformen (50–8f)
90–93, 94–95, A8 Pfeile (90 - FF)
22 00, 02, 03, 06, 08–09, 0f, 11–12, 15, 19–1a, 1e - 1f, 27–28, 29, 2a, 2b, 48, 59, 60–61, 64–65, 82–83, 95, 97 Mathematische Operatoren (00 - FF)
23 02, 0a, 20–21, 29–2a Verschiedenes technisches (00 - FF)
25 00, 02, 0c, 10, 14, 18, 1c, 24, 2c, 34, 3c, 50–6c Kastenzeichnung (00–7f)
80, 84, 88, 8c, 90–93 Blockelemente (80–9f)
A0 - A1, AA -AC, B2, BA, BC, C4, CA - CB, CF, D8 - D9, E6 Geometrische Formen (A0 - FF)
26 3a - 3c, 40, 42, 60, 63, 65–66, 6a, 6b Verschiedene Symbole (00 - FF)
F0 (01–02) Privatnutzungsbereich (00 - FF ...)
FB 01–02 Alphabetische Präsentationsformen (00–4f)
Ff FD Specials

Das Rendern von Software, die einen Unicode -Charakter nicht angemessen verarbeiten kann, zeigt ihn häufig als offenes Rechteck oder als Unicode an. "Ersatzcharakter"(U+fffd, �), um die Position des nicht erkannten Charakters anzuzeigen. Einige Systeme haben Versuche unternommen, weitere Informationen über solche Charaktere bereitzustellen. Apple's Letzte Resort -Schriftart zeigt einen Ersatzglyphen, der den Unicode -Bereich des Zeichens angibt, und die SIL International's Unicode Fallback Schriftart Zeigt ein Feld an, das den hexadezimalen Skalarwert des Charakters zeigt.

Zuordnung und Codierungen

Für die Speicherung einer Reihe von Codepunkten als eine Reihe von Bytes wurden mehrere Mechanismen angegeben.

Unicode definiert zwei Mapping -Methoden: die Unicode -Transformationsformat (UTF) Codierungen und die Universal codiertes Zeichensatz (UCS) Codierungen. Ein Codierungskarten (möglicherweise eine Teilmenge von) dem Unicode -Bereich Codepunkte zu Wertsequenzen in einem Bereich mit fester Größe, der bezeichnet wird Codeeinheiten. Alle UTF -Codings -Kartencode weist auf eine eindeutige Abfolge von Bytes hin.[68] Die Zahlen in den Namen der Encodings geben die Anzahl der Bits pro Codeeinheit (für UTF -Codierungen) oder die Anzahl der Bytes pro Codeeinheit (für UCS -Codierungen und UTF-1). UTF-8 und UTF-16 sind die am häufigsten verwendeten Codierungen. UCS-2 ist eine veraltete Teilmenge von UTF-16; UCS-4 und UTF-32 sind funktional äquivalent.

UTF -Codierungen umfassen:

  • UTF-8verwendet ein bis vier Bytes für jeden Codepunkt, maximiert die Kompatibilität mit ASCII
  • UTF-EBCDICähnlich wie UTF-8, aber für die Kompatibilität mit Ebcdic (nicht Teil von Der Unicode -Standard)
  • UTF-16, verwendet ein oder zwei 16-Bit-Code-Einheiten pro Codepunkt, können Ersatz nicht codieren
  • UTF-32Verwendet eine 32-Bit-Codeeinheit pro Codepunkt

UTF-8 verwendet ein bis vier Bytes pro Codepunkt und liefert, wenn es um lateinische Skripte und ASCII-kompatibel ist, die de facto Standardcodierung für den Austausch des Unicode -Textes. Es wird von verwendet von Freebsd und letztes Linux -Verteilungen als direkter Ersatz für Legacy -Encodings bei der allgemeinen Textbehandlung.

Die UCS-2- und UTF-16-Kodierungen geben den Unicode an Byte -Bestellmarke (BOM) zur Verwendung an den Anfängen von Textdateien, die zur Erkennung von Byte-Ordnung verwendet werden können (oder Byte Endiangess Erkennung). Die BOM, Code Point U+Feff, hat die wichtige Eigenschaft der Unabhängigkeit bei der Byte -Neuordnung unabhängig von der verwendeten Unicode -Codierung. U+FFFE (das Ergebnis von Byte-Swapping U+Feff) entspricht nicht einem rechtlichen Charakter, und U+Feff an anderen Stellen als dem Beginn des Text Kein Effekt, als die Bildung von zu verhindern Ligaturen).

Das gleiche in UTF-8 konvertierte Zeichen wird zur Byte-Sequenz Ef bb bf. Der Unicode-Standard ermöglicht, dass die BOM "als Signatur für UTF-8-codierter Text dienen kann, in dem der Zeichensatz nicht markiert ist".[69] Einige Softwareentwickler haben es für andere Codierungen, einschließlich UTF-8, übernommen, um UTF-8 von lokalem 8-Bit zu unterscheiden Codeseiten. Jedoch RFC 3629Der UTF-8-Standard empfiehlt, dass Byte-Bestellmarken in Protokollen unter Verwendung von UTF-8 verboten sind, diskutiert jedoch die Fälle, in denen dies möglicherweise nicht möglich ist. Darüber hinaus bedeutet die große Einschränkung der möglichen Muster in UTF-8 (zum Beispiel keine einzelnen Bytes mit dem hohen Bit-Set), dass es möglich sein sollte, UTF-8 von anderen Charakter-Kodierungen zu unterscheiden, ohne sich auf die BOM zu verlassen.

In UTF-32 und UCS-4, einer 32-Bit Die Code -Einheit dient als ziemlich direkte Darstellung des Codepunkts eines Zeichens (obwohl die Endiangess, die sich zwischen verschiedenen Plattformen unterscheidet, beeinflusst, wie sich die Codeeinheit als Byte -Sequenz manifestiert). In den anderen Codierungen kann jeder Codepunkt durch eine variable Anzahl von Codeeinheiten dargestellt werden. UTF-32 wird häufig als interne Darstellung von Text in Programmen (im Gegensatz zu gespeicherten oder übertragenen Text) verwendet, da jedes Unix-Betriebssystem, das das verwendet GCC Compiler, um Software zu generieren, verwendet sie als Standard. "breiter Charakter"Codierung. Einige Programmiersprachen, wie z. Samen7Verwenden Sie UTF-32 als interne Darstellung für Zeichenfolgen und Zeichen. Jüngste Versionen der Python Die Programmiersprache (beginnend mit 2.2) kann auch so konfiguriert werden, dass sie UTF-32 als Darstellung für Unicode hohes Level codierte Software.

Punycode, eine andere Codierungsform, ermöglicht die Codierung von Unicode -Zeichenfolgen in den von dem unterstützten begrenzten Zeichen, der von dem unterstützt wird ASCII-basierend Domainnamensystem (DNS). Die Codierung wird als Teil von verwendet Idna, was ein System ist, das die Verwendung von ermöglicht Internationalisierte Domain -Namen in allen Skripten, die von Unicode unterstützt werden. Frühere und jetzt historische Vorschläge umfassen UTF-5 und UTF-6.

GB18030 ist eine weitere Codierungsform für Unicode, von der Standardisierungsverwaltung Chinas. Es ist der Beamte Zeichensatz des Volksrepublik China (PRC). Bocu-1 und Scsu sind Unicode -Komprimierungsschemata. Das Aprilscherz RFC von 2005 angegeben zwei Parodie UTF -Codierungen, UTF-9 und UTF-18.

Annahme

Betriebssysteme

Unicode ist das dominierende Schema für die interne Verarbeitung und Speicherung von Text geworden. Obwohl noch viel Text in Legacy Codings gespeichert ist, wird Unicode fast ausschließlich für den Aufbau neuer Informationsverarbeitungssysteme verwendet. Frühe Anwender nutzten tendenziell UCS-2 (Der Zwei-Byte-Vorläufer fester Breite von UTF-16) und später nach UTF-16 (Der variable Breitenstand Standard), da dies der am wenigsten störende Weg war, um Nicht-BMP-Zeichen zu unterstützen. Das bekannteste solchen System ist Windows NT (und seine Nachkommen, 2000, XP, Vista, 7, 8, 10, und 11), das UTF-16 als alleinige interne Zeichenkodierung verwendet. Das Java und .NETZ Bytecode -Umgebungen, Mac OS, und Kde Verwenden Sie es auch für die interne Darstellung. Eine teilweise Unterstützung für Unicode kann ein installiert werden Windows 9x durch die Microsoft Layer für Unicode.

UTF-8 (ursprünglich entwickelt für Plan 9)[70] ist die wichtigste Speichercodierung der meisten geworden Unix-artig Betriebssysteme (obwohl andere auch von einigen Bibliotheken verwendet werden), da dies ein relativ einfacher Ersatz für traditionelle ist erweiterte ASCII Zeichensätze. UTF-8 ist auch die häufigste Unicode-Codierung, die in verwendet wird Html Dokumente auf der Weltweites Netz.

Mehrsprachige Text-Rendering-Motoren, die Unicode verwenden Entzünden und DirectWrite Für Microsoft Windows, ATSUI und Kerntext für macos und Pango zum Gtk+ und die Gnom Desktop.

Eingabemethoden

Da Tastaturlayouts keine einfachen Schlüsselkombinationen für alle Zeichen haben können, bieten mehrere Betriebssysteme alternative Eingabemethoden, die den Zugriff auf das gesamte Repertoire ermöglichen.

ISO/IEC 14755,[71] Dies standardisiert Methoden zur Eingabe von Unicode -Zeichen aus ihren Codepunkten, gibt verschiedene Methoden an. Dort ist der Grundmethode, wo ein Beginnsequenz folgt von der hexadezimalen Darstellung des Codespunkts und der Endsequenz. Da ist auch ein Eintragsmethode für Bildschirmauswahl angegeben, wobei die Zeichen in einer Tabelle in einem Bildschirm aufgeführt sind, z. B. mit einem Zeichenkartenprogramm.

Online -Tools zum Suche nach dem Codepunkt für einen bekannten Zeichen enthalten Unicode -Lookup[72] von Jonathan Hedley und Shapecatcher[73] von Benjamin milde. In Unicode Lookup gibt man einen Suchschlüssel (z. B. "Fraktionen"), und eine Liste entsprechender Zeichen mit ihren Codepunkten wird zurückgegeben. In Shapecatcher basierend auf FormkontextMan zeichnet den Charakter in einer Box und eine Liste von Zeichen, die mit ihren Codepunkten die Zeichnung nähern, wird zurückgegeben.

Email

MIME definiert zwei verschiedene Mechanismen zur Codierung von Nicht-ASCII-Zeichen in Email, je nachdem, ob sich die Zeichen in E -Mail -Headern (z. B. "Betreff") oder im Textkörper der Nachricht befinden; In beiden Fällen wird der ursprüngliche Zeichensatz sowie eine Übertragungscodierung identifiziert. Für die E -Mail -Übertragung von Unicode die UTF-8 Zeichensatz und die Basis64 oder der Zitiert Die Übertragungscodierung wird empfohlen, je nachdem, ob ein Großteil der Nachricht besteht ASCII Figuren. Die Details der beiden verschiedenen Mechanismen sind in den MIME -Standards angegeben und sind im Allgemeinen vor Benutzern von E -Mail -Software versteckt.

Die Einführung von Unicode in E -Mail war sehr langsam. Einige ostasiatische Texte sind immer noch in Codierungen wie z. ISO-2022und einige Geräte, wie z. B. Mobiltelefone, können Unicode -Daten immer noch nicht korrekt behandeln. Die Unterstützung hat sich jedoch verbessert. Viele große kostenlose Postanbieter wie Yahoo, Google (Google Mail), und Microsoft (Outlook.com) unterstütze es.

Netz

Alle W3c Empfehlungen haben Unicode als ihre verwendet Dokument Zeichensatz Seit HTML 4.0. Internetbrowser haben Unicode, insbesondere UTF-8, seit vielen Jahren unterstützt. Früher gab es Probleme mit Anzeigenproblemen, die hauptsächlich von entstanden sind Schriftart Verwandte Themen; z.B. v 6 und älter von Microsoft Internet Explorer hat nicht viele Codepunkte erzielt, es sei denn, sie sollen eine Schriftart verwenden, die sie enthält.[74]

Obwohl die Syntaxregeln die Reihenfolge beeinflussen können, in der Zeichen erscheinen dürfen, Xml (einschließlich Xhtml) Dokumente per Definition,[75] Enthält Zeichen aus den meisten Unicode -Codepunkten, mit Ausnahme:

  • die meisten von den C0 -Steuercodes,
  • Die dauerhaft nicht zugewiesenen Codepunkte d800 -dfff,
  • Fffe oder ffff.

HTML -Zeichen manifestieren sich entweder direkt als Bytes Laut der Codierung des Dokuments unterstützt die Codierung, wenn die Codierung sie unterstützt, oder Benutzer können sie als numerische Zeichenreferenzen basierend auf dem Unicode -Codepunkt des Charakters schreiben. Zum Beispiel die Referenzen Δ, Й, ק, م, , , , , und (oder die gleichen numerischen Werte, die in hexadezimal ausgedrückt werden, mit wie das Präfix) auf allen Browsern als δ, й, ק, م, ๗, あ, 叶, 葉 und 말 angezeigt werden sollte.

Beim Angeben URISzum Beispiel als URLs in Http Anfragen, Nicht-ASCII-Zeichen müssen sein prozentualcodiert.

Schriftarten

Unicode befasst sich im Prinzip nicht mit Schriftarten an sich, sie als Implementierungsentscheidungen zu sehen.[76] Jeder bestimmte Charakter kann viele haben Allographen, von den häufigeren mutigen, kursiven und Grundbuchstaben bis hin zu komplexen dekorativen Stilen. Eine Schriftart ist "unicode konform", wenn auf die Glyphen in der Schrift mit Codepunkten zugegriffen werden können, die im Unicode -Standard definiert sind.[77] Der Standard gibt keine minimale Anzahl von Zeichen an, die in die Schriftart enthalten sein müssen. Einige Schriftarten haben ein ziemlich kleines Repertoire.

Kostenlos und Einzelhandel Schriftarten Basierend auf Unicode sind weit verbreitet, da seitdem TrueType und Offener Typ Unterstützen Sie Unicode. Diese Schriftformate kartieren Unicode -Codepunkte auf Glyphen, aber die TrueType -Schrift ist auf 65.535 Glyphen beschränkt.

Tausende von Schriftarten existieren auf dem Markt, aber weniger als ein Dutzend Schriftarten-manchmal als "pan-unicode" -Kraften beschrieben-, setzten die Mehrheit des Unicode-Charakterrepertoires ein. Stattdessen unicode-basiert Schriftarten Konzentrieren Sie sich in der Regel darauf, nur grundlegende ASCII und bestimmte Skripte oder Zeichen von Zeichen oder Symbolen zu unterstützen. Mehrere Gründe rechtfertigen diesen Ansatz: Anwendungen und Dokumente müssen selten Zeichen aus mehr als einem oder zwei Schreibsystemen rendern; Schriftarten benötigen dazu, Ressourcen in Computerumgebungen zu fordern. und Betriebssysteme und Anwendungen zeigen zunehmende Intelligenz im Hinblick auf das Erhalten von Glypheninformationen aus separaten Schriftartdateien, d. H. Schriftartsubstitution. Darüber hinaus ist das Entwerfen einer konsistenten Reihe von Rendering -Anweisungen für Zehntausende Glyphen eine monumentale Aufgabe; Ein solches Unternehmen übergeht den Punkt von Rückgänge abnehmen Für die meisten Schriftarten.

Newlines

Unicode adressiert teilweise die Neue Zeile Problem, das beim Versuch auftritt, eine Textdatei auf verschiedenen Plattformen zu lesen. Unicode definiert eine große Anzahl von Figuren Diese konformen Anwendungen sollten als Linienbeschluss erkennen.

In Bezug auf die Newline wurde Unicode eingeführt U+2028 Zeilenabscheider und U+2029 Absatzabscheider. Dies war ein Versuch, eine Unicode -Lösung für codierende Absätze und Linien semantisch bereitzustellen, wodurch alle verschiedenen Plattformlösungen ersetzt werden. Auf diese Weise bietet Unicode einen Weg um die historischen plattformabhängigen Lösungen. Trotzdem haben nur wenige Unicode -Lösungen diese Unicode -Linien- und Absatzabscheider als alleinige kanonische Zeilenzeichen -Zeichen übernommen. Ein häufiger Ansatz zur Lösung dieses Problems ist jedoch die Normalisierung der Newline -Normalisierung. Dies wird mit dem Kakao -Textsystem in Mac OS X sowie mit W3C XML- und HTML -Empfehlungen erreicht. In diesem Ansatz wird jeder mögliche neue Zeilencharakter intern in eine gemeinsame neue Linie umgewandelt (was man nicht wirklich spielt, da es sich um eine interne Operation handelt, die nur zum Rendern ist). Mit anderen Worten, das Textsystem kann den Charakter unabhängig von der tatsächlichen Codierung der Eingabe korrekt als Newline behandeln.

Ausgaben

Han -Vereinigung

Han -Vereinigung (die Identifizierung von Formen in der Ostasiatische Sprachen Welche man als stilistische Variationen desselben historischen Charakters behandeln kann) ist zu einem der umstrittensten Aspekte von Unicode geworden, trotz der Anwesenheit einer Mehrheit der Experten aus allen drei Regionen in der Ideografische Forschungsgruppe (IRG), das das Konsortium und die ISO bei Ergänzungen des Repertoires und zur Han -Vereinigung berät.[78]

Unicode wurde kritisiert, weil er nicht ältere und alternative Formen von separat codiert werden kann Kanji Was, argumentieren Kritiker, erschweren die Verarbeitung alter japanischer und ungewöhnlicher japanischer Namen. Dies ist oft auf die Tatsache zurückzuführen, dass Unicode eher Zeichen als Glyphen codiert (die visuellen Darstellungen des Grundcharakters, die oft von einer Sprache zu einer anderen variieren). Die Vereinigung von Glyphen führt zu der Wahrnehmung, dass die Sprachen selbst, nicht nur die grundlegende Charakterrepräsentation, zusammengeführt werden.[79][Klarstellung erforderlich] Es gab mehrere Versuche, alternative Kodierungen zu erstellen, die die stilistischen Unterschiede zwischen chinesischen, japanischen und koreanischen Charakteren bei der Unicode -Politik der HAN -Vereinigung bewahren. Ein Beispiel für einen ist Tron (Obwohl es in Japan nicht weit verbreitet ist, gibt es einige Benutzer, die sich mit historischem japanischen Text umgehen und ihn bevorzugen).

Obwohl das Repertoire von weniger als 21.000 Han -Charakteren in der frühesten Version von Unicode weitgehend auf Charaktere bei der gemeinsamen modernen Verwendung beschränkt war, enthält Unicode jetzt mehr als 92.000 Han -Charaktere, und die Arbeiten fügen weiterhin Tausende historische und dialektale Charaktere hinzu, die in China verwendet werden, und die Arbeiten, die in China verwendet werden, fügt weiterhin Tausende hinzugefügt. Japan, Korea, Taiwan und Vietnam.

Moderne Schriftart Technologie bietet ein Mittel, um das praktische Problem zu befassen, in dem ein einheitliches Han -Charakter in Bezug auf eine Sammlung alternativer Glyph -Darstellungen in Form von dargestellt werden muss Unicode -Variationssequenzen. Zum Beispiel die fortschrittlichen typografischen Tische von Offener Typ Erlauben Sie, dass eine von einer Reihe alternativer Glyphendarstellungen bei der Ausführung des Zeichens mit dem Glyphenzuordnungsprozess ausgewählt werden. In diesem Fall können Informationen innerhalb von Klartext bereitgestellt werden, um zu bestimmen, welches alternative Zeichenformular ausgewählt werden soll.

Verschiedene kyrillisch Zeichen mit aufrechten, schrägen und kursiven alternativen Formen

Kursive oder kursive Charaktere in kyrillisch

Wenn die entsprechenden Glyphen für Zeichen im selben Skript nur im kursiven Abschnitt unterscheiden, hat Unicode sie im Allgemeinen einheit Die Texten rechts, was bedeutet, dass die Unterschiede durch Smart -Schriftart oder manuell ändernde Schriftarten angezeigt werden.

Mapping zu Legacy -Charakter -Sets

Unicode wurde so konzipiert, dass er Code-für-Code-Punkt bereitgestellt wurde Konvertierung des Hin- und Rücktripsformates zu und von allen bereits vorhandenen Zeichenkodierungen, so dass Textdateien in älteren Zeichensätzen in Unicode und dann zurück konvertiert werden können und die gleiche Datei zurückerhalten, ohne die kontextabhängige Interpretation zu verwenden. Das hat diese inkonsistenten alten Architekturen bedeutet, wie z. Diakritik kombinieren und Vorkomponierte ZeichenBeide existieren in Unicode und geben mehr als eine Methode zur Darstellung eines Textes. Dies ist in den drei verschiedenen Codierungsformen für Koreanisch am ausgeprägtesten Hangul. Seit Version 3.0 können alle vorkomponierten Zeichen, die durch eine kombinierte Folge bereits vorhandener Zeichen dargestellt werden können, dem Standard nicht mehr hinzugefügt werden, um die Interoperabilität zwischen Software mit verschiedenen Versionen von Unicode zu erhalten.

Injektiv Zuordnungen müssen zwischen Zeichen in vorhandenen Legacy -Zeichensätzen und Zeichen in Unicode bereitgestellt werden, um die Konvertierung in Unicode zu erleichtern und die Interoperabilität mit Legacy -Software zu ermöglichen. Mangelnde Konsistenz in verschiedenen Zuordnungen zwischen früheren japanischen Kodierungen wie z. Shift-Jis oder EUC-JP und Unicode führte zu Konvertierung des Hin- und Rücktripsformates Fehlanpassungen, insbesondere die Zuordnung des Charakters jis x 0208 '~' (1-33, Wave Dash), der in Legacy-Datenbankdaten stark verwendet wird, zu beiden U+ff5e Fullwidth Tilde (in Microsoft Windows) oder U+301c Wave Dash (andere Anbieter).[80]

Einige japanische Computerprogrammierer lehnten Unicode aus U+005c \ Umgekehrt Solidus (Backslash) und U+00A5 ¥ Yen Zeichen, der in JIS x 0201 auf 0x5c zugeordnet wurde, und mit dieser Verwendung gibt es viel Legacy -Code.[81] (Diese Codierung ersetzt auch Tilde '~' 0x7e durch macron '¯', jetzt 0xaf.) Die Trennung dieser Zeichen existiert in ISO 8859-1, von lang vor Unicode.

Indic -Skripte

Indic -Skripte wie zum Beispiel Tamilisch und Devanagari werden jeweils nur 128 Codepunkte zugewiesen, die dem entsprechen Iscii Standard. Die korrekte Darstellung des Unicode -Indikat -Textes erfordert die Umwandlung der gespeicherten logischen Reihenfolge in visuelle Reihenfolge und die Bildung von Ligaturen (AKA -Konjunkten) aus Komponenten. Einige lokale Wissenschaftler argumentierten für die Zuordnungen von Unicode -Code -Punkten auf diese Ligaturen und verstoßen gegen die Praxis für andere Schreibsysteme, obwohl Unicode nur einige arabische und andere Ligaturen enthält, nur für Rückwärtskompatibilitätszwecke.[82][83][84] Die Codierung neuer Ligaturen in Unicode wird nicht auftreten, teilweise, weil der Satz der Ligaturen eine Schriftart abhängig ist und Unicode eine Codierung unabhängig von Schriftarten ist. Das gleiche Problem entstand für die Tibetanische Schrift im Jahr 2003, wenn die Standardisierungsverwaltung Chinas Vorgeschlagene Codierung von 956 vorkomponierten tibetischen Silben,[85] Diese wurden jedoch von dem entsprechenden ISO -Ausschuss für die Codierung abgelehnt (ISO/IEC JTC 1/SC 2).[86]

Thai Alphabet Unterstützung wurde für die Bestellung von thailändischen Charakteren kritisiert. Die Vokale เ, แ, โ, ใ, ไ, die links vom vorhergehenden Konsonanten geschrieben sind, sind im Gegensatz zu den Unicode -Darstellungen anderer Indic -Skripte in visueller Reihenfolge anstelle der phonetischen Reihenfolge. Diese Komplikation ist darauf zurückzuführen, dass Unicode die erben Thai Industrial Standard 620, was auf die gleiche Weise funktioniert hat und die Art und Weise war, wie Thai immer auf Tastaturen geschrieben worden war. Dieses Bestellproblem erschwert den Unicode -Konsumprozess geringfügig und erfordert Tabellen -Lookups, thailändische Zeichen für die Zusammenfassung neu zu ordnen.[79] Selbst wenn Unicode eine Codierung nach gesprochenen Ordnung übernommen hätte, wäre es dennoch problematisch, Wörter in Wörterbuchreihenfolge zu sammeln. Z. B. das Wort แสดง [sa dɛːŋ] "Perform" beginnt mit einem Konsonantencluster "สด" (mit einem inhärenten Vokal für den Konsonanten "ส"), der Vokal แ-, in gesprochener Reihenfolge würde nach dem ด kommen, aber in einem Wörterbuch wird das Wort so zusammengestellt, wie es ist geschrieben, mit dem Vokal dem ส.

Charaktere kombinieren

Zeichen mit diakritischen Markierungen können im Allgemeinen entweder als einzelner vorkomponierter Zeichen oder als zersetzte Sequenz eines Basisbuchs plus einer oder mehrerer Nicht-Abstandsmarkierungen dargestellt werden. Zum Beispiel sollte ḗ (vor komponiertes E mit Macron und Akut oben) und ḗ (E gefolgt von dem kombinierten Macron oben und kombiniertem Akut oben) identisch gemacht werden, wobei beide als eine erscheinen e mit einer Längezeichen und Akuter AkzentAber in der Praxis kann ihr Erscheinungsbild je nachdem, welche Rendering -Engine und Schriftarten verwendet werden, um die Zeichen anzuzeigen. Ähnlich, Außenseiternach Bedarf in der Romanisierung von Indik, wird oft falsch platziert. Unicode -Zeichen, die in vorkomponierte Glyphen zugeordnet werden Charis Sil das verwendet Graphit, Offener Typ, oder Aat Technologien für erweiterte Rendering -Funktionen.

Anomalien

Der Unicode -Standard hat Regeln auferlegt, die Stabilität garantieren sollen.[87] Abhängig von der Strenge einer Regel kann eine Änderung verboten oder zulässig sein. Beispielsweise kann und wird sich ein "Name", der einem Codepunkt gegeben wurde, nicht ändern. Aber eine "Skript" -Fahrung ist flexibler, nach den eigenen Regeln von Unicode. In Version 2.0 änderte Unicode viele Codepunkt -Namen "Namen" aus Version 1. Im selben Moment stellte Unicode fest, dass sich von da an ein zugewiesener Name einem Codepunkt nie mehr ändern würde. Dies impliziert, dass diese Fehler bei Veröffentlichung von Fehlern nicht korrigiert werden können, selbst wenn sie trivial sind (wie in einem Fall mit der Schreibweise passiert Brakcet zum Klammer in einem Charakternamen). 2006 wurde erstmals eine Liste von Anomalien in Charakternamen veröffentlicht, und ab Juni 2021 gab es 104 Zeichen mit identifizierten Problemen.[88] zum Beispiel:

  • U+2118 Skriptkapital p: Dies ist ein kleiner Brief. Die Hauptstadt ist U+1D4AB Mathematischer Skriptkapital p.[89]
  • U+034f ͏ Kombinieren von Graphem Joiner: Schließt sich keine Graphemen an.[88]
  • U+A015 Yi Silbe Wu: Dies ist keine Yi -Silbe, sondern eine Yi -Iterationsmarke.
  • U+Fe18 Präsentationsform für vertikale rechte weiße linsenförmige Braket: Klammer ist falsch geschrieben.[90] (Rechtschreibfehler werden durch Verwendung behoben Unicode alias Namen.))

Während Unicode den Skript -Designator (Name) definiert, um zu sein "PHAGS PA", In den Charakteren dieses Skripts wird ein Bindestrich hinzugefügt: U+A840 PHAGS-PA BRIEF KA.[91][92]

Sicherheitsprobleme

Unicode hat eine große Anzahl von Homoglyphenviele davon sehen sehr ähnlich oder identisch mit ASCII -Buchstaben. Die Substitution von diesen kann eine Kennung oder eine URL erzeugen, die korrekt aussieht, aber zu einem anderen Ort als erwartet leitet.[93] und könnte auch verwendet werden, um die Ausgabe von zu manipulieren Verarbeitung natürlicher Sprache (NLP) Systeme.[94]

Die Minderung erfordert, dass diese Zeichen nicht zugesagt, unterschiedlich angezeigt oder dass sie sich auf denselben Kennung lösen. All dies ist aufgrund der riesigen und sich ständig ändernden Charaktere kompliziert.[95][96]

Eine Sicherheitsberatung wurde im Jahr 2021 von zwei Forschern veröffentlicht, einer von der Universität von Cambridge und der andere von derselben und von der Universität von Edinburgh, in denen sie behaupten, dass die Bidi Codes können verwendet werden, um große Codeabschnitte zu erstellen, die etwas anderes tun als das, was sie zu tun scheinen.[97]

Siehe auch

Anmerkungen

  1. ^ Die formelle Versionsreferenz ist "Das Unicode -Konsortium: Der Unicode -Standard, Version 14.0.0". Mountain View, CA: Das Unicode -Konsortium. 2021. ISBN 978-1-936213-29-0.
  2. ^ Manchmal Abbr. Tus wird genutzt.[1][2]

Verweise

  1. ^ Mitglieder des Unicode-Redaktionsausschusses (2002-03-27). "Unicode Technischer Bericht Nr. 28: Unicode 3.2". Unicode -Konsortium. Abgerufen 2022-06-23.{{}}: CS1 Wartung: Verwendet Autorenparameter (Link)
  2. ^ Jenkins, John H. (2021-08-26). "Unicode Standard Anhang #45: U-Source-Ideografien". Unicode -Konsortium. Abgerufen 2022-06-23. 2.2 Das Quellfeld
  3. ^ "Unicode 14.0.0".
  4. ^ "Unicode Version 14.0 Zeichen zählt".
  5. ^ "Der Unicode -Standard: Eine technische Einführung". Abgerufen 2010-03-16.
  6. ^ "Der Unicode® Bulldog Award".
  7. ^ a b c d e Becker, Joseph D. (1998-09-10) [1988-08-29]. "Unicode 88" (PDF). unicode.org (Nachdruck von 10. Jubiläum). Unicode -Konsortium. Archiviert (PDF) vom Original am 2016-11-25. Abgerufen 2016-10-25. 1978 wurde der erste Vorschlag für eine Reihe von "universellen Zeichen" gemacht Bob Belleville bei Xerox Parc. Viele Personen haben Ideen zur Entwicklung eines neuen Codierungsdesigns beigetragen. Ab 1980 entwickelten sich diese Bemühungen zu der Xerox Character Code Standard (XCCS) vom gegenwärtigen Autor, eine mehrsprachige Kodierung, die Xerox seit 1982 als interner Unternehmensstandard durch die Bemühungen von Ed Smura, Ron Pellar und anderen aufrechterhalten.
    Unicode entstand durch acht Jahre Berufserfahrung mit XCCs. Seine grundlegenden Unterschiede zu XCCs wurden von Peter Fenwick und Dave Opstad (reine 16-Bit-Codes) und von vorgeschlagen Lee Collins (ideografische Charaktervereinigung). Unicode behält die vielen Merkmale von XCCs bei, deren Nutzen im Laufe der Jahre in einer internationalen Kommunikationslinie mehrsprachiger Systemprodukte nachgewiesen wurde.
  8. ^ "Zusammenfassende Erzählung". Abgerufen 2010-03-15.
  9. ^ Geschichte der Unicode -Veröffentlichung und Veröffentlichungstermine an unicode.org. Abgerufen am 28. Februar 2017.
  10. ^ Searle, Stephen J. "Unicode überarbeitet". Abgerufen 2013-01-18.
  11. ^ a b "Die Mitglieder des Unicode -Konsortiums". Abgerufen 2019-01-04.
  12. ^ "Unicode FAQ". Abgerufen 2020-04-02.
  13. ^ "Unterstützte Skripte". unicode.org. Abgerufen 2021-09-16.
  14. ^ "Roadmap zum BMP". Unicode -Konsortium. Abgerufen 2018-07-30.
  15. ^ "Unicode Roadmap".
  16. ^ "Skript -Codierungsinitiative".
  17. ^ "Über die Skript -Codierungsinitiative". Das Unicode -Konsortium. Abgerufen 2012-06-04.
  18. ^ "Unicode 6.1 Taschenbuch verfügbar". Ankündigungen_at_unicode.org. Abgerufen 2012-05-30.
  19. ^ "Aufzählte Versionen des Unicode -Standards". Abgerufen 2016-06-21.
  20. ^ a b c
  21. ^ a b "Unicode Data 1.0.1". Abgerufen 2010-03-16.
  22. ^ a b
  23. ^ a b
  24. ^ a b
  25. ^ "Unicode data-3.0.0". Abgerufen 2010-03-16.
  26. ^ "Unicode data-3.1.0". Abgerufen 2010-03-16.
  27. ^ "Unicode data-3.2.0". Abgerufen 2010-03-16.
  28. ^ und "ș" und "ț" Charaktere zur Unterstützung rumänisch "Unicode data-4.0.0". Abgerufen 2010-03-16.
  29. ^ "Unicode data-4.1.0". Abgerufen 2010-03-16.
  30. ^ "Unicode Data 5.0.0". Abgerufen 2010-03-17.
  31. ^ "Unicode Data 5.1.0". Abgerufen 2010-03-17.
  32. ^ "Unicode Data 5.2.0". Abgerufen 2010-03-17.
  33. ^ "Unicode Data 6.0.0". Abgerufen 2010-10-11.
  34. ^ "Unicode -Daten 6.1.0". Abgerufen 2012-01-31.
  35. ^ "Unicode -Daten 6.2.0". Abgerufen 2012-09-26.
  36. ^ "Unicode -Daten 6.3.0". Abgerufen 2013-09-30.
  37. ^ "Unicode Data 7.0.0". Abgerufen 2014-06-15.
  38. ^ "Unicode 8.0.0". Unicode -Konsortium. Abgerufen 2015-06-17.
  39. ^ "Unicode data 8.0.0". Abgerufen 2015-06-17.
  40. ^ "Unicode 9.0.0". Unicode -Konsortium. Abgerufen 2016-06-21.
  41. ^ "Unicode Data 9.0.0". Abgerufen 2016-06-21.
  42. ^ Lobao, Martim (2016-06-07). "Dies sind die beiden Emoji, die nicht für Unicode 9 zugelassen waren, aber die Google sowieso zu Android hinzugefügt wurden". Android Police. Abgerufen 2016-09-04.
  43. ^ "Unicode 10.0.0". Unicode -Konsortium. Abgerufen 2017-06-20.
  44. ^ "Bitcoin -Symbol - Bitcoin Wiki". en.bitcoin.it. Abgerufen 2021-09-29.
  45. ^ "Der Unicode -Standard, Version 11.0.0 Anhang C" (PDF). Unicode -Konsortium. Abgerufen 2018-06-11.
  46. ^ "Ankündigung des Unicode -Standards, Version 11.0". blog.unicode.org. Abgerufen 2018-06-06.
  47. ^ "Der Unicode -Standard, Version 12.0.0 Anhang C" (PDF). Unicode -Konsortium. Abgerufen 2019-03-05.
  48. ^ "Ankündigung des Unicode -Standards, Version 12.0". blog.unicode.org. Abgerufen 2019-03-05.
  49. ^ "Unicode Version 12.1 zur Unterstützung der Reiwa -Ära". blog.unicode.org. Abgerufen 2019-05-07.
  50. ^ a b
  51. ^ "Der Unicode -Standard, Version 13.0– Kernspezifikation Anhang C" (PDF). Unicode -Konsortium. Abgerufen 2020-03-11.
  52. ^ a b
  53. ^ "Beta Unicode 15.0.0". www.unicode.org. Abgerufen 2022-07-16.
  54. ^ "Emoji zählt, v15.0β". www.unicode.org. Abgerufen 2022-07-16.
  55. ^ "Glossar der Unicode -Begriffe". Abgerufen 2010-03-16.
  56. ^ "3,4 Zeichen und Codierung". Der Unicode Standard, Version 14.0 (PDF). 2021. p. 88.
  57. ^ "2.4 Codepunkte und Zeichen". Die Unicode Standard Version 14.0 - Kernspezifikation (PDF). 2021. p. 29.
  58. ^ "Re: Ursprung der U+nnnn Notation". Unicode Mail -Listenarchiv (Mailingliste). 2005-11-08.
  59. ^ "Anhang A: Notational Conventions" (PDF). Der Unicode -Standard. Unicode -Konsortium. September 2021. In Übereinstimmung mit dem Aufzählungspunkt in Bezug auf Unicode in MOS: AllcapsDie formalen Unicode -Namen werden in diesem Absatz nicht verwendet.
  60. ^ a b "Unicode -Charakter -Codierungsstabilitätspolitik". Abgerufen 2010-03-16.
  61. ^ "Eigenschaften" (PDF). Abgerufen 2021-09-16.
  62. ^ "Unicode -Charakter -Codierungsmodell". Abgerufen 2010-03-16.
  63. ^ "Unicode namens Sequenzen". Abgerufen 2010-03-16.
  64. ^ "Unicode Name Aliase". Abgerufen 2010-03-16.
  65. ^ CWA 13873: 2000-Mehrsprachige europäische Untergruppen in ISO/IEC 10646-1 Cen Workshop -Vereinbarung 13873
  66. ^ Mehrsprachiger europäischer Charakter Set 2 (MES-2) Begründung, Markus Kuhn, 1998
  67. ^ "Projektzeichen und definierte Zeichensequenzen in Unicode für die elektronische Verarbeitung von Namen und Datenaustausch in Europa mit CD-ROM". LÄRM. Abgerufen 2022-06-02.
  68. ^ "UTF-8, UTF-16, UTF-32 & BOM". Unicode.org FAQ. Abgerufen 2016-12-12.
  69. ^ Der Unicode Standard, Version 6.2. Das Unicode -Konsortium. 2013. p. 561. ISBN 978-1-936213-08-5.
  70. ^ Pike, Rob (2003-04-30). "UTF-8-Geschichte".
  71. ^ "ISO/IEC JTC1/SC 18/WG 9 N" (PDF). Abgerufen 2012-06-04.
  72. ^ Hedley, Jonathan (2009). "Unicode -Lookup".
  73. ^ Milde, Benjamin (2011). "Unicode -Charaktererkennung".
  74. ^ Holz, Alan. "Einrichten von Windows Internet Explorer 5, 5.5 und 6 für mehrsprachige und unicode -Unterstützung". Alan Wood. Abgerufen 2012-06-04.
  75. ^ "Extensible Markup Language (XML) 1.1 (zweite Ausgabe)". Abgerufen 2013-11-01.
  76. ^ Bigelow, Charles; Holmes, Kris (September 1993). "Das Design einer Unicode -Schriftart" (PDF). Elektronisches Verlagswesen. 6 (3): 292.
  77. ^ "Schriftarten und Tastaturen". Unicode -Konsortium. 2017-06-28. Abgerufen 2019-10-13.
  78. ^ Eine kurze Geschichte von Charaktercodes, Steven J. Searle, ursprünglich geschrieben 1999, zuletzt aktualisiert 2004
  79. ^ a b Das geheime Leben von Unicode: Ein Blick auf Unicode's weiche Unterbauch, Suzanne Topping, 1. Mai 2001 (Internetarchiv)
  80. ^ AFII -Beitrag über Wave Dash, "Ein Unicode-Anbieter-spezifischer Charaktertabelle für Japanisch". web.archive.org. 2011-04-22. Archiviert von das Original Am 2011-04-22.
  81. ^ ISO 646-* Problem, Abschnitt 4.4.3.5 von Einführung in i18n, Tomohiro Kubota, 2001
  82. ^ "Arabische Präsentationsformen-a" (PDF). Abgerufen 2010-03-20.
  83. ^ "Arabische Präsentation Forms-B" (PDF). Abgerufen 2010-03-20.
  84. ^ "Alphabetische Präsentationsformen" (PDF). Abgerufen 2010-03-20.
  85. ^ China (2002-12-02). "Vorschlag zu tibetischen Brdarten -Zeichen, die für ISO/IEC 10646 in BMP codiert werden" (PDF).
  86. ^ V. S. Umamaheswaran (2003-11-07). "Resolutionen von WG 2 Meeting 44" (PDF). Auflösung M44.20.
  87. ^ "Unicode -Stabilitätspolitik".
  88. ^ a b "Unicode Technischer Hinweis Nr. 27: Bekannte Anomalien in Unicode -Zeichennamen". unicode.org. 2021-06-14.
  89. ^ "Unicode -Diagramm:" Tatsächlich hat dies die Form eines Kleinbuchstabens trotz seines Namens. "" (PDF).
  90. ^ ""Fehlschreibende Klammer in Charakternamen ist ein bekannter Defekt"" (PDF).
  91. ^ "Unicode Standard Anhang Nr. 24: Unicode Skript -Eigenschaft". Das Unicode -Konsortium. 2021. 2.2 Beziehung zu ISO 15924 Codes. Abgerufen 2022-04-29.
  92. ^ "Scripts-114.0.0.txt". Das Unicode -Konsortium. 2021. Abgerufen 2022-04-29.
  93. ^ "UTR #36: Unicode -Sicherheitsüberlegungen". unicode.org.
  94. ^ Suzuki, Hiroaki; Chiba, Daiki; Yoneya, Yoshiro; Mori, Tatsuya; Goto, Shigeki (2019-10-21). "Shamfinder: Ein automatisiertes Framework zum Erkennen von IDN -Homographien". Verfahren der Internet -Messkonferenz. Amsterdam Niederlande: ACM: 449–462. doi:10.1145/3355369.3355587. ISBN 978-1-4503-6948-0. S2CID 241940620.
  95. ^ Wheeler, David A. (2020). "Gegenmaßnahmen": 4–1. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  96. ^ "UTR #36: Unicode -Sicherheitsüberlegungen". unicode.org. Abgerufen 2022-06-27.
  97. ^ Nicholas Boucher, Ross Anderson. "Trojanische Quelle: Unsichtbare Schwachstellen" (PDF). Abgerufen 2021-11-02.

Weitere Lektüre

  • Der Unicode Standard, Version 3.0, The Unicode Consortium, Addison-Wesley Longman, Inc., April 2000. ISBN0-201-61633-5
  • Der Unicode Standard, Version 4.0, The Unicode Consortium, Addison-Wesley Professional, 27. August 2003. ISBN0-321-18578-1
  • Der Unicode Standard, Version 5.0, fünfte Ausgabe, Das Unicode -Konsortium, Addison-Wesley Professional, 27. Oktober 2006. ISBN0-321-48091-0
  • Julie D. Allen. Der Unicode Standard, Version 6.0, Das Unicode -Konsortium, Mountain View, 2011, ISBN9781936213016, ([1]).
  • Das komplette Handbuch der TypografieJames Felici, Adobe Press; 1. Auflage, 2002. ISBN0-321-12730-7
  • Unicode: Ein Primer, Tony Graham, M & T Books, 2000. ISBN0-7645-4625-2.
  • Unicode entmystifiziert: Ein praktischer Programmierhandbuch zum Codierungsstandard, Richard Gillam, Addison-Wesley Professional; 1. Auflage, 2002. ISBN0-201-70052-2
  • Unicode erklärt, Jukka K. Korpela, O'Reilly; 1. Auflage, 2006. ISBN0-596-10121-x

Externe Links

  • Unicode BMP Fallback -Schriftart- Zeigt den Unicode 6.1 -Wert eines beliebigen Zeichens in einem Dokument an, einschließlich im privaten Gebrauchsbereich und nicht in der Glyphe selbst.