Universal codiertes Zeichensatz
Alias (e) | UCS, Unicode |
---|---|
Sprachen) | International |
Standard | ISO/IEC 10646 |
Codierungsformate | UTF-8, UTF-16, GB 18030 Seltener: UTF-32, Bocu, Scsu, UTF-7 |
Vorausgegangen von | ISO/IEC 8859, ISO/IEC 2022, verschiedene andere. |
Das Universal codiertes Zeichensatz (UCS, Unicode) ist ein Standardsatz von Figuren definiert durch die internationaler Standard ISO/IEC10646, Informationstechnologie - Universal Coded Character Set (UCS) (plus Änderungen dieses Standards), was die Grundlage für viele ist CharaktercodierungenDie Verbesserung als Charaktere aus zuvor nicht vertretenen Typierungssystemen werden hinzugefügt.
Die UCS verfügt Grundlegende mehrsprachige Ebene (BMP), hatte vor 2000 gemeinsam verwendet. Diese Situation änderte sich, als sich die Volksrepublik China (PRC) regierte 2006, dass alle in ihrer Gerichtsbarkeit verkauften Software unterstützen müssten GB 18030. Diese erforderliche Software, die in der VR China zum Verkauf angeboten wurde, um über den BMP hinauszugehen.
Das System hinterlässt absichtlich viele Codepunkte, die auch im BMP Zeichen zugeordnet sind. Dies ermöglicht eine zukünftige Expansion oder die Minimierung von Konflikten mit anderen Codierungsformen.
Die ursprüngliche Ausgabe der definierten UCS UTF-16, eine Erweiterung von UCS-2, um Codepunkte außerhalb des BMP darzustellen. Eine Reihe von Codepunkten in der S (Spezial-) Zone des BMP bleibt für Zeichen nicht zugewiesen. UCS-2 ändert die Verwendung von Codewerten für diese Codepunkte nicht, aber UTF-16 ermöglicht deren Verwendung. Unicode übernahm auch UTF-16, aber in der Unicode-Terminologie werden die Elemente der hohen Hälfte Zonen zu "hohen Ersatz" und die Elemente der niedrigen Hälfte werden zu "niedrigen Ersatz".[Klarstellung erforderlich]
Eine weitere Kodierung, UTF-32 (zuvor UCS-4) verwendet vier Bytes (insgesamt 32 Bit), um ein einzelnes Zeichen des Codespace zu codieren. UTF-32 ermöglicht damit eine binäre Darstellung jedes Codepunkts in den APIs und Softwareanwendungen.
Geschichte
Das Internationale Standardisierungsorganisation (ISO) setzte sich darauf ab, den 1989 festgelegten universellen Charakter zu verfassen, und veröffentlichte 1990 den Entwurf von ISO 10646. Hugh McGregor Ross war einer ihrer Hauptarchitekten. Dieser Standard unterschied sich deutlich von der aktuellen. Es definierte:
- 128 Gruppen von
- 256 Ebenen von
- 256 Reihen von
- 256 Zellen,
Für insgesamt 2.147.483.648 Zeichen, aber der Standard könnte nur 679.477.248 Zeichen codieren, da die Richtlinie die Byte -Werte von verboten hat C0- und C1 -Kontrollcodes (0x00 bis 0x1f und 0x80 bis 0x9f, in hexadezimal Notation) in einem der vier Bytes, die eine Gruppe, Ebene, Reihe und Zelle angeben. Der lateinische Kapitalbuchstaben A hatte beispielsweise einen Ort in Gruppe 0x20, Ebene 0x20, Zeile 0x20, Zelle 0x41.
Man könnte die Zeichen dieses ursprünglichen ISO/IEC 10646 -Standards auf eine von drei Arten codieren:
- UCS-4, vier Bytes für jeden Charakter, der die einfache Kodierung aller Zeichen ermöglicht;
- UCS-2, zwei Bytes für jeden Charakter, die die Codierung der ersten Ebene 0x20, der grundlegenden mehrsprachigen Ebene ermöglichen, die die ersten 36.864 CodePoints, unkompliziert und andere Ebenen und Gruppen enthält, indem Sie zu ihnen wechseln ISO/IEC 2022 Fluchtsequenzen;
- UTF-1, was alle Zeichen in Sequenzen von Bytes unterschiedlicher Länge codiert (1 bis 5 Bytes, von denen jeweils keine Steuercodes enthalten).
Im Jahr 1990 existierten daher zwei Initiativen für einen universellen Charakter -Set: UnicodeMit 16 Bits für jeden Charakter (65.536 mögliche Charaktere) und ISO/IEC 10646. Die Softwareunternehmen weigerten sich, die Komplexität und Größenanforderung des ISO -Standards zu akzeptieren, und konnten eine Reihe von nationalen ISO -Körpern davon überzeugen, gegen ihn zu stimmen. ISO -Beamte erkannten, dass sie den Standard in seinem aktuellen Zustand nicht weiter unterstützen konnten, und verhandelte die Vereinigung ihres Standards mit Unicode. Es fanden zwei Änderungen statt: Das Heben der Begrenzung auf Zeichen (Verbot der Kontrollcodewerte) und so Codepunkte wie 0x0000101f für die Zuweisung; und die Synchronisation des Repertoires der grundlegenden mehrsprachigen Ebene mit der von Unicode.
Im Laufe der Zeit änderte sich die Situation im Unicode -Standard selbst: 65.536 Zeichen schien unzureichend zu sein, und der Standard von Version 2.0 und weiter unterstützt die Codierung von 1.112.064 Codepunkten aus 17 Flugzeuge durch die UTF-16 Ersatzmechanismus. Aus diesem Grund war ISO/IEC 10646 darauf beschränkt, so viele Zeichen zu enthalten, wie sie von UTF-16 und nicht mehr kodiert werden konnten, dh etwas mehr als eine Million Zeichen anstelle von über 679 Millionen. Die UCS-4-Codierung von ISO/IEC 10646 wurde in den Unicode-Standard mit der Begrenzung des UTF-16-Bereichs und unter dem Namen integriert UTF-32, obwohl es fast keine Nutzung außerhalb der Programme von externen Programmen hat.
Rob Pike und Ken Thompson, die Designer der Plan 9 Betriebssystem, entwickelte eine neue, schnelle und gut gestaltete Mischbreitkodierung UTF-8,[1] Derzeit die beliebteste UCS -Codierung.
Unterschiede von Unicode
ISO/IEC 10646 und Unicode haben eine identische Repertoire und Zahlen - Die gleichen Zeichen mit den gleichen Zahlen gibt es in beiden Standards, obwohl Unicode neue Versionen freigibt und häufiger neue Zeichen hinzufügt. Unicode hat Regeln und Spezifikationen außerhalb des Rahmens von ISO/IEC 10646. ISO/IEC 10646 ist eine einfache Zeichenkarte, eine Erweiterung früherer Standards wie ISO/IEC 8859. Im Gegensatz dazu fügt Unicode Regeln für hinzu Kollation, Normalisierung von Formen, und die Bidirektionaler Algorithmus zum rechts nach links Skripte wie Arabisch und Hebräisch. Für die Interoperabilität zwischen Plattformen, insbesondere wenn bidirektionale Skripte verwendet werden, reicht es nicht aus, ISO/IEC 10646 zu unterstützen. Unicode muss implementiert werden.
Um diese Regeln und Algorithmen zu unterstützen, fügt Unicode viele hinzu Eigenschaften Zu jedem Charakter im Satz wie Eigenschaften, die die standardmäßige bidirektionale Klasse und Eigenschaften eines Charakters bestimmen, um festzustellen, wie sich das Zeichen mit anderen Zeichen verbindet. Wenn das Charakter einen numerischen Wert wie die europäische Zahl „8“ oder die vulgäre Fraktion „¼“ darstellt, wird dieser numerische Wert auch als Eigenschaft des Zeichens hinzugefügt. Unicode beabsichtigt diese Eigenschaften, die interoperable Textbehandlung mit einer Mischung von Sprachen zu unterstützen.
Einige Anwendungen unterstützen ISO/IEC 10646 -Zeichen, unterstützen jedoch nicht vollständig Unicode. Eine solche Anwendung, Xterm, kann alle ISO/IEC 10646 Zeichen, die eine Eins-zu-Eins-Zeichen-zu-Glyphen-Zuordnung haben, richtig anzeigen[Klarstellung erforderlich] und eine einzige Richtungslosigkeit. Es kann einige kombinierte Markierungen durch einfache Überstreichungsmethoden bewältigen, kann aber nicht Hebräisch (bidirektional) anzeigen. Devanagari (Ein Charakter für viele Glyphen) oder Arabisch (beide Merkmale). Die meisten GUI Anwendungen verwenden Standard -OS -Textzeichnungsroutinen, die solche Skripte verarbeiten, obwohl die Anwendungen selbst nicht immer korrekt behandelt werden.
Zitieren des universellen codierten Zeichensatzes
ISO/IEC 10646Ein allgemeines, informelles Zitat für die ISO/IEC 10646 -Standardfamilie ist in den meisten Prosa akzeptabel. Und obwohl es ein separater Standard ist, der Begriff Unicode wird genauso oft und informell verwendet, wenn Sie über die UCS diskutieren. Alle normativen Verweise auf die UCS als Veröffentlichung sollten jedoch das Jahr der Ausgabe in der Form zitieren ISO/IEC 10646: {Jahr}, zum Beispiel: ISO/IEC 10646: 2014.
Beziehung zu Unicode
Seit 1991 die Unicode -Konsortium und die ISO/IEC hat entwickelt Der Unicode -Standard ("Unicode") und ISO/IEC 10646 im Tandem. Das Repertoire, die Charakternamen und die Codepunkte von Unicode Version 2.0 stimmen genau mit den von ISO/IEC 10646-1: 1993 mit den ersten sieben veröffentlichten Änderungen überein. Nach der Veröffentlichung von Unicode 3.0 im Februar 2000 wurden entsprechende neue und aktualisierte Zeichen über ISO/IEC 10646-1: 2000 in die UCS eingegeben. Im Jahr 2003 wurden die Teile 1 und 2 von ISO/IEC 10646 zu einem einzigen Teil kombiniert, in dem seitdem eine Reihe von Änderungsanträgen auftraten, die den Standard in ungefährer Synchronisation mit dem Unicode -Standard hinzufügen.
- ISO/IEC 10646-1: 1993 = Unicode 1.1
- ISO/IEC 10646-1: 1993 plus Änderungen 5 bis 7 = Unicode 2.0
- ISO/IEC 10646-1: 1993 plus Änderungen 5 bis 7 = Unicode 2.1 ausschließlich Eurozeichen und Objektersatzcharakter, die in Änderung 18 enthalten sind
- ISO/IEC 10646-1: 2000 = Unicode 3.0
- ISO/IEC 10646-1: 2000 und ISO/IEC 10646-2: 2001 = Unicode 3.1
- ISO/IEC 10646-1: 2000 plus Änderung 1 und ISO/IEC 10646-2: 2001 = Unicode 3.2
- ISO/IEC 10646: 2003 = Unicode 4.0
- ISO/IEC 10646: 2003 plus Änderung 1 = Unicode 4.1
- ISO/IEC 10646: 2003 plus Änderungen 1 bis 2 = Unicode 5.0 Ohne Devanagari Letters GGA, JJA, DDDA und BBA, die in Änderung 3 enthalten sind
- ISO/IEC 10646: 2003 plus Änderungen 1 bis 4 = Unicode 5.1
- ISO/IEC 10646: 2003 plus Änderungen 1 bis 6 = Unicode 5.2
- ISO/IEC 10646: 2003 plus Änderungen 1 bis 8 = ISO/IEC 10646: 2011 = Unicode 6.0 ausschließlich Indisches Rupieschild
- ISO/IEC 10646: 2012 = Unicode 6.1
- ISO/IEC 10646: 2012 = Unicode 6.2 ausschließlich Türkischer Lira -Zeichen, die in Änderung 1 enthalten ist
- ISO/IEC 10646: 2012 = Unicode 6.3 ausschließlich Türkischer Lira -Zeichen, die in der Änderung 1 und fünf bidirektionale Kontrollfiguren (arabischer Buchstabenmarke, links nach rechts Isolat, rechts-links-Isolat, erster starkes Isolat, Pop-Richtungs-Isolat) enthalten ist, die in der Änderung 2 enthalten sind
- ISO/IEC 10646: 2012 plus Änderungen 1 und 2 = Unicode 7.0 ohne die Rubelzeichen
- ISO/IEC 10646: 2014 plus Änderung 1 = Unicode 8.0 ohne die Larizeichen, neun CJK einheitliche Ideografien und 41 Emoji -Charaktere
- ISO/IEC 10646: 2014 plus Änderungen 1 und 2 = Unicode 9.0 ohne Adlam, Newa, japanische Fernsehsymbole und 74 Emoji und Symbole
- ISO/IEC 10646: 2017 = Unicode 10.0 ohne 285 Hentaigana Charaktere, 3 Zanabazar Square Charaktere und 56 Emoji -Symbole
- ISO/IEC 10646: 2017 plus Änderung 1 = Unicode 11.0 ohne 46 mtavruli georgianische Großbuchstaben, 5 CJK Unified Ideographs und 66 Emoji -Charaktere
- ISO/IEC 10646: 2017 plus Änderungen 1 und 2 = Unicode 12.0 ohne 62 zusätzliche Zeichen
- ISO/IEC 10646: 2020 = Unicode 13.0
- ISO/IEC 10646: 2021 = Unicode 14.0
Siehe auch
Verwandte Standards:
- ISO/IEC 646 (Die Positionen 0 bis 127 sind die gleichen wie in ISO/IEC 10646 und Unicode, und die Zahlen 646 und 10646 sind ähnlich)
- ISO/IEC 2022 Informationstechnologie - Charakter -Code -Struktur und Erweiterungstechniken
- ISO/IEC 6429 C0- und C1 -Kontrollcodes
- ISO/IEC 8859 (Die Positionen 0 bis 255 UCs und Unicode sind die gleichen wie in ISO/IEC 8859-1, alias ISO Latein 1)
- ISO/IEC 14651 Informationstechnologie - internationale Saitenordnung und Vergleich
- ISO 15924 Codes für die Darstellung von Namen von Skripten (Jeder Charakter ist mit einem dieser Skripte verbunden)
- Vergleich von Unicode -Codierungen
- Liste der XML- und HTML -Charakterentitätsreferenzen
- Liste der Unicode -Schriftarten
- Universelle Charakter -Set -Zeichen
- ISO/IEC JTC 1/SC 2
Anmerkungen
Verweise
- ^ Pike, Rob (2003-04-03). "UTF-8-Geschichte". Archiviert vom Original am 2016-205-23.
Externe Links
- Öffentlich verfügbare Standards (ISO)-Enthält eine Kopie von ISO 10646: 2014 (129 MB ZIP-Datei, veröffentlicht 2014-09-01) und elektronische Einsätze (1,7 MB-Zip-Datei)
- ISO/IEC JTC1/SC2/WG2, das Arbeitsgruppe verantwortlich für ISO 10646
- UTF-8 und Unicode FAQ
- Die Freeware -Schriftarten, Redakteure und Dokumentation von SIL
- Einfaches, aber angenehmes UTF-8-Beispiel, das Ihren Webbrowser und Ihre Schriftart testen.
- Charakter -Set -Probleme für ADA 9x Ab Oktober 1989 geht es um Details über das Original vor dem Merger dis ISO-10646