Unicode

Unicode ist ein Computerstandard , der den Austausch von Texten in verschiedenen Sprachen auf globaler Ebene ermöglicht. Es wurde vom Unicode Consortium entwickelt , das darauf abzielt, geschriebenen Text zu codieren, indem jedem Zeichen in jedem Schriftsystem ein Name und eine numerische Kennung auf einheitliche Weise gegeben wird, unabhängig von der Computerplattform oder der verwendeten Software .

Diese Norm ist verwandt mit der Norm ISO / IEC 10646 beschreibt eine Tabelle äquivalenter Zeichen. Die neueste Version, Unicode 13.0 , wurde in . veröffentlichtMärz 2020.

Vollständig kompatibel mit dem universellen Zeichensatz (UIC) von ISO / IEC 10646 , erweitert der Unicode-Standard ihn um ein vollständiges Darstellungs- und Textverarbeitungsmodell, das jedem Zeichen einen Satz von Eigenschaften verleiht (der entweder für einige standardisierte oder stabilisierte Zeichensätze sein kann). alle Unicode-Versionen, in denen das Zeichen codiert wurde, oder informativ mit nur einer Empfehlung zu ihrer Verwendung, die sich an die neuen Anforderungen anpassen kann). Diese Eigenschaften beschreiben mit Genauigkeit die semantischen Beziehungen, die zwischen mehreren aufeinanderfolgenden Zeichen eines Textes bestehen können, und ermöglichen die Standardisierung oder Empfehlung von Verarbeitungsalgorithmen, die die Semantik der transformierten Texte so gut wie möglich erhalten. Unicode zielt darauf ab, denselben Text auf völlig unterschiedlichen Computersystemen identisch nutzbar zu machen.

Der Unicode-Standard besteht aus einem Repertoire von 143.859 Zeichen, das mehr als 150 Skripte umfasst, einer Reihe von Codetabellen zur visuellen Referenz, einer Kodierungsmethode und mehreren Standardzeichenkodierungen, einer Aufzählungszeicheneigenschaften (Großbuchstaben, Kleinbuchstaben, APL , Symbole, Satzzeichen). ,  etc. ) eines Satzes von Computer-Referenzdateien und einer Reihe verwandter Elemente, wie Normalisierungsregeln, bidirektionale Zerlegung, Sortierung, Wiedergabe und Anzeigereihenfolge (für die korrekte Anzeige von Text, der sowohl von rechts nach links Schriftzeichen wie Arabisch und Hebräisch und von links nach rechts).

In der Praxis berücksichtigt Unicode die ISO / IEC 10646 vollständig , da diese nur einzelne Zeichen standardisiert, indem sie ihnen einen Namen und eine normative Nummer (sogenannter Codepunkt ) und eine sehr eingeschränkte informative Beschreibung zuweist , jedoch keine Verarbeitung oder Spezifikation oder Empfehlung für deren beim Schreiben echter Sprachen verwenden, die nur der Unicode-Standard genau definiert. Die ISO / IEC 10646 bezieht sich normativ auf Teile des Unicode-Standards (einschließlich des bidirektionalen Algorithmus und der Zeicheneigenschaften  (in) ); Unicode ist auch ein De-facto- Standard für die Textverarbeitung und dient als Grundlage für viele andere Standards.

Geschriebene Sprachen:

Alphabetisch

[L] ogographisch und [S] yllabisch


Ostasien [L]

Abjad (semitische Sprachen)

Abugida

Tor

Unicode-Tabellen (Plan 0) Schlüsseldaten
0000 - 0FFF 8000 - 8FFF
1000 - 1FFF 9000 - 9FFF
2000 - 2FFF A000 - AFFF
3000 - 3FFF B000 - BFFF
4000 - 4FFF C000 - CFFF
5000 - 5FFF D000 - DFFF
6000 - 6FFF E000 - EFFF
7000 - 7FFF F000 - FFFF
Andere Unicode-Pläne
0000 - FFFF Plan 0 (PMB / BMP )
10.000 - 1FFFF Plan 1 (PMC / SMP )
20.000 - 2FFFF Plan 2 (PSC / SIP )
30.000 - 3FFFF Plan 3 (PST / TIP )
40.000 - DFFFF Schüsse 4–13 (reserviert)
E0000 - EFFFF Plan 14 (STK / SSP )
F0000 - FFFFF Plan 15 (privat A)
100.000 - 10FFFF Plan 16 (privat B)

Unicode, dessen Erstveröffentlichung auf das Jahr zurückgeht Oktober 1991, wurde entwickelt , um die Verwendung nationaler Codepages zu ersetzen .

Diese Codepages hatten in der Vergangenheit einige Probleme. Zum Beispiel auf 3270-Terminals, die in EBCDIC arbeiten  : Wenn ein elektronisches Memo ein "Währungszeichen" enthielt, würde derselbe Text, der eine Ausgabe in Dollar für den amerikanischen Leser begrenzt, auf einem britischen Bildschirm den gleichen Betrag in Pfund Sterling anzeigen , da die Währung Vorzeichen war in jedem der beiden Länder unterschiedlich.

In der Praxis sind noch nicht alle Schriftsysteme vorhanden, da für seltene Schriftzeichen oder wenig bekannte Schriftsysteme (weil sie z. B. verschwunden sind) noch dokumentarische Recherchearbeit mit Spezialisten erforderlich sein kann.

Es werden jedoch die weltweit am häufigsten verwendeten Skripte sowie Regeln zur Semantik von Zeichen , ihrer Zusammensetzung und der Kombination dieser verschiedenen Systeme dargestellt. - Zum Beispiel, wie man ein rechts-nach-links-Schreibsystem in ein links-nach-rechts-Schreibsystem einfügt ( bidirektionaler Text ).

Standardisierung

Interoperabilität

In seiner UTF-8-Form bietet Unicode eine gewisse Interoperabilität mit ASCII- Code .

Einhaltung

Der Unicode-Standard definiert Anforderungen für die Bewertung der Konformität der Implementierung eines Prozesses (oder einer Software) mit Unicode . Diese Anforderungen betreffen insbesondere (in Version 4.0 ):

Diese Anforderungen ermöglichen die Unterstützung einer Teilmenge von Unicode.

Während ISO / IEC 10646 denselben Zeichensatz wie Unicode definiert, ist der Unterschied zwischen ISO / IEC 10646 und Unicode hauptsächlich auf die übermäßige Konformitätsanforderung von Unicode zurückzuführen.

Einschränkungen

Unicode ist 2016 der führende Standard für die Computerzeichencodierung. Es wird für die Software-Interoperabilität verwendet und ermöglicht beispielsweise das Kopieren von Texten mit Zeichen verschiedener Alphabete zwischen verschiedenen Softwares, auch wenn sie nicht speziell dafür entwickelt wurden (z. B. ein Programm in APL- Zeichen in einem LibreOffice- Text oder in einer E-Mail unter Gmail ). Allerdings sind nicht alle Unicode-Texte gleich kodiert. Abhängig von der angenommenen Unicode-Standardisierung kann das gleiche grafische Zeichen manchmal auf unterschiedliche Weise codiert werden. Einige Texte verwenden , um die NFC - Konvention , andere die NFD Konvention ,  usw. Und der Standard verbietet es nicht, mehrere Konventionen im selben Text zu mischen. Das gleiche gilt für Software.

Diese Koexistenz mehrerer Schreibweisen wurde in den 2000er Jahren von Hackern ausgenutzt, indem sie Filter umgehen konnten: Hacker umgingen die Verbote bestimmter als gefährlich angesehener Zeichenfolgen ganz einfach, indem sie sie in einer anderen Form kodierten. , ungewöhnlicher und daher manchmal ungefiltert.

Unicode reagiert auf diese Einschränkungen, indem es den Begriff der kanonischen Äquivalenz bereitstellt .

Normen und Versionen

Die Arbeit an Unicode ist parallel und synchronisiert mit der an der Norm ISO / IEC 10646, deren Ziele die gleichen sind. Die ISO / IEC 10646 , eine in Französisch und Englisch veröffentlichte internationale Norm, die weder die Regeln für die Zusammensetzung von Zeichen noch die semantischen Eigenschaften der Zeichen festlegt.

Unicode behandelt jedoch das Problem der Groß- / Kleinschreibung , der alphabetischen Reihenfolge und der Kombination von Akzenten und Zeichen . Seit der Unicode- Version 1.1 und in allen nachfolgenden Versionen haben die Zeichen die gleichen Bezeichner wie die des ISO / IEC 10646-Standards  : Die Verzeichnisse werden parallel gepflegt, während ihrer endgültigen Standardisierung identisch, die beiden Standards werden fast gleichzeitig aktualisiert. Die beiden Standards Unicode (seit Version 1.1 ) und ISO / IEC 10646 gewährleisten volle Abwärtskompatibilität: Jeder Text, der einer früheren Version entspricht, muss auch in späteren Versionen konform bleiben.

Somit entsprechen die Zeichen der Unicode- Version 3.0 denen des ISO/IEC 10646:2000-Standards . Die Version 3.2 von Unicode zählte 95.221 Zeichen, Symbole und Anweisungen.

Die Version 4.1 von Unicode, aktualisiertNovember 2005, enthält:

dh insgesamt fast 245.000 Codepunkte in einem Raum zugewiesen, der 1.114.112 verschiedene Codes enthalten kann.

Bei der Kodierung chinesischer Schriftzeichen scheinen jedoch einige Probleme aufgrund der Vereinheitlichung der in verschiedenen Sprachen verwendeten ideographischen Sätze mit leicht unterschiedlicher und manchmal sinnvoller Kalligraphie zu bestehen, aber sie werden durch Unicode gelöst, das über definierte Selektoren verfügt eine Standardsequenzregistrierung geöffnet, die sie verwendet.

Ausführung Veröffentlichungsdatum Neue Charaktere
1.0.0 Oktober 1991
1.0.1 Juni 1992
1.1 Juni 1993
2.0 Juli 1996
2.1 Mai 1998
3.0 September 1999
3.1 März 2001
3.2 März 2002
4.0 April 2003
4.1 März 2005
5.0 Juli 2006
5.1 März 2008
5.2 Oktober 2009
6.0 Februar 2011
6.1 31. Januar 2012
7,0 16. Juni 2014 2.834 neue Charaktere inklusive Emojis .
8.0 17. Juni 2015 7.716 Zeichen, darunter viele Emojis.
9,0 21. Juni 2016 7.500 neue Charaktere (einschließlich 72 Emojis).
10,0 20. Juni 2017 8.518 neue Charaktere (einschließlich 56 Emojis).
11,0 5. Juni 2018 684 neue Charaktere (einschließlich 66 Emojis).
12.0 5. März 2019 554 neue Zeichen.
13,0 10. März 2020 5.390 neue Charaktere

Unicode-Ebenen

Unicode ist nach einem Schichtmodell definiert ( Technical Note Unicode n o  17 ). Andere Standards unterschieden normalerweise nicht zwischen Zeichensatz und physischer Darstellung. Die Schichten werden hier beginnend mit der höchsten (am weitesten von der Maschine entfernten) dargestellt.

Verzeichnis abstrakter Zeichen ( Astract Character Repertoire )

Die oberste Ebene ist die Zeichensatzdefinition. Latin-1 hat beispielsweise einen Satz von 256 Zeichen, während Unicode derzeit fast 110.000 Zeichen standardisiert. Darüber hinaus weist Unicode jedem dieser Zeichen einen Namen zu.

Die Liste der Zeichen mit ihren Namen bildet daher die Unicode-Anwendungsschicht.

Das Zeichen Ç heißt beispielsweise "lateinischer Großbuchstabe c cedilla".

Diese Definition ist vollständig identisch mit der von ISO / IEC 10646, die jede Erweiterung des Verzeichnisses zulässt. Unicode verwendet im Text seines Standards nur die normativen Namen in Englisch, aber der ISO / IEC 10646-Standard wird in zwei gleich normativen Sprachen veröffentlicht. Somit sind die Namen in Englisch und Französisch beide standardisiert.

Tatsächlich erfolgt jede Erweiterung des Verzeichnisses nun gemeinsam zwischen der für ISO / IEC 10646 zuständigen Arbeitsgruppe ( JTC1 / SC2 / WG2 , deren stimmberechtigte Mitglieder nur die nationalen Normungsbehörden der teilnehmenden Länder oder deren offizieller Vertreter sind) und der Unicode UTC Technical Committee (dessen stimmberechtigte Mitglieder jede private oder öffentliche Organisation oder sogar eine Regierung sein können, die beigetreten ist und eine jährliche Gebühr entrichtet, um an diesen Entscheidungen teilzunehmen) .

Codierter Zeichensatz ( codierter Zeichensatz )

Hier wird eine mit jedem Zeichen verknüpfte Zahl zur vorherigen Tabelle hinzugefügt. Beachten Sie, dass dies keine Darstellung im Speicher ist, sondern nur eine ganze Zahl, die als Codepunkt bezeichnet wird . Der Codierraum für diese Nummern ist in 17 Bereiche mit 65.536 Codepunkten unterteilt. Diese Bereiche werden Ebenen genannt .

Der Codepunkt wird mit "U + xxxx" bezeichnet, wobei "xxxx" hexadezimal ist und 4 bis 6  Stellen hat  :

  • 4 Ziffern für den Vordergrund, sogenannter mehrsprachiger Grundplan (also zwischen U + 0000 und U + FFFF);
  • 5-stellig für die folgenden 15 Pläne (zwischen U + 10.000 und U + FFFFF);
  • 6 Stellen für den letzten Plan (zwischen U + 100.000 und U + 10FFFF).

So hat das Zeichen mit dem Namen "Lateinischer Großbuchstabe c cedilla" (Ç) die Nummer U + 00C7. Es gehört in den Vordergrund.

Grundsätzlich stehen alle Codepunkte zwischen U + 0000 und U + 10FFFF zur Verfügung, bestimmte Intervalle sind jedoch dauerhaft für bestimmte Verwendungen reserviert, insbesondere eine ausgeschlossene Indirektionszone für die UTF-16-Codierung ( siehe unten), die Bereiche für den privaten Gebrauch und einige Regionen (zB U + FFFE oder U + FFFF) , die nicht-Zeichen , deren Verwendung in einem kompatiblen Datenaustausch gestattet. Die anderen Codepunkte sind entweder bereits Zeichen zugeordnet oder für zukünftige Standardisierungen reserviert.

Zone für den privaten Gebrauch: Unicode hat gültigen Zeichen viele Codepunkte zugewiesen, deren Semantik jedoch aufgrund des privaten Gebrauchs unbekannt ist (zum Beispiel sind die letzten beiden Pläne zwischen U + F0000 und U + 10FFFF vollständig dieser Verwendung gewidmet, mit Ausnahme der beiden Codes Punkte am Ende jedes Plans, die in konformem Text verbotene Nichtzeichen sind).

Auch hier ist die Codierungsstandardisierung, d. h. die Zuordnung von Codepunkten zu Zeichen des gemeinsamen Repertoires, eine gemeinsame Entscheidung der Unicode- und ISO / IEC 10646-Standards . Alle Zeichen im Verzeichnis haben einen eindeutigen Codepunkt (auch wenn für einige Sprachen oder für Unicode einige Zeichen als gleichwertig angesehen werden).

Es ist zu beachten, dass das Zeichenverzeichnis, wenn es erweiterbar ist, durch die obere Grenze des Codierungsraums begrenzt ist: U + 10FFFF. Ein Großteil der möglichen Codepunkte ist keinem bestimmten Zeichen zugeordnet, kann aber jederzeit sein.

Auch diese noch freien Codepunkte gelten nicht als ungültig, sondern stellen abstrakte Zeichen dar (noch nicht spezifiziert und temporär reserviert). Diese abstrakten Zeichen (wie auch den privaten Gebrauch Zeichen) vervollständigen den codierten Zeichensatz von standardisierten Verzeichnis in einem einzigen Spiel namens „  Universal Character Set  “ ( Universal Character Set , oft abgekürzt als UCS ), der enthält alle codierten Zeichensätze der Verzeichnisse jeder der vergangenen, gegenwärtigen und zukünftigen Versionen von ISO / IEC 10646 und Unicode (nur seit Version 1.1 ).

Formalismus Zeichenkodierung ( Zeichenkodierungsformular )

Diesmal kommen wir zu einer physischen Darstellung (im Speicher, auf der Festplatte, etc.): Diese Schicht gibt an, welche Einheit (Codierung Codeeinheiten ) oder Codet , um ein Zeichen oder genauer einen Codepunkt darstellen: Byte , seizet  (in ) (16-Bit-Wort) oder dreißig-deuzet  (en) (32-Bit-Wort).

Es kann (und gibt) mehrere dieser Formalismen geben. Ein bestimmter Formalismus muss die Größe der Codiereinheit spezifizieren und angeben, wie die ganze Zahl, die einen Codepunkt darstellt, in einer Reihe von Codiereinheiten dargestellt wird – und umgekehrt, d. h. wie der Codepunkt bei einer Sequenz von Codiereinheiten zu finden ist.

Mechanismus zur Serialisierung von Zeichen ( Schema zur Zeichencodierung )

Diese Schicht sorgt für die Serialisierung der Sequenzen von Codiereinheiten, die von der vorherigen Schicht definiert wurden, in Sequenzen von Bytes. Hier wird die Reihenfolge der Bytes zwischen Big-Endian (höchstwertiges Byte zuerst) und Little-Endian (niederwertiges Byte zuerst) gewählt.

In diesem Schritt ist es auch möglich, einen Byte-Order-Indikator (oder BOM für Byte-Order-Mark ) hinzuzufügen , der am Anfang der Datei oder des Datenstroms anzeigt, ob er in Big-Endian oder Little-Endian vorliegt. In der Internetwelt wird es selten verwendet und bevorzugt ein explizites Markup ("  charset = UTF-16BE  " in MIME , um beispielsweise einen Big-Endian-Datenstrom anzuzeigen, wobei BE für Big Endian steht ).

Übercodierungsübertragung ( Übertragungscodierungssyntax )

Hier optional Komprimierungs- oder Verschlüsselungsmechanismen.

Es kann auch eine Übercodierung wie bei LDAP geben, die festlegt, dass Unicode-Strings in UTF-8 und in Base64 übercodiert werden sollen .

Byte-Limit

Um die starren Beschränkungen der bisherigen Standards (eine Folge von Bits, eine Darstellung) zu überwinden, trennt Unicode fortan einerseits die Definition des Zeichensatzes (Liste der Zeichen nach ihrem Namen) und deren Index, den Codepunkt , der Codierung . Wir können daher nicht von der Größe eines Unicode-Zeichens sprechen, da diese von der gewählten Kodierung abhängt und diese daher beliebig variieren kann. In der Praxis ist UTF-8 in westlichen Ländern weit verbreitet.

Wo ASCIIBit und ISO / IEC 8859-1 8 Bit verwendet (wie die meisten nationalen Codepages), benötigt Unicode, das die Zeichen jeder Codepage sammelt, mehr als 8 Bit pro Byte . Die Grenze wurde ursprünglich auf 16 Bit für frühe Versionen von Unicode und 32 Bit für frühe Versionen von ISO / IEC 10646 festgelegt .

Die aktuelle Grenze liegt nun zwischen 20 und 21  Bits pro Codepunkt, die standardisierten Zeichen in den beiden jetzt miteinander kompatiblen Standards zugeordnet sind:

  • Die internationale ISO-Arbeitsgruppe standardisiert die Zuordnung von Codepunkten zu Zeichen, ihren offiziellen Namen und reserviert die Codepunktblöcke, die von jedem Skript oder jeder Skriptgruppe verwendet werden. Es dokumentiert auch eine mögliche grafische Darstellung (indikativ) für jedes Zeichen (diese grafische Darstellung ist möglichst eindeutig durch die Platzierung der standardisierten Zeichen in den entsprechenden Codeblöcken für eine begrenzte Anzahl von Skripten).
  • Die Arbeitsgruppe des Unicode-Konsortiums standardisiert (im Unicode-Standard) ihre Semantik für die automatisierte Verarbeitung dank Zeicheneigenschaftentabellen und die Entwicklung von Standardalgorithmen unter Verwendung dieser Eigenschaften.
  • Die beiden Normungsgremien arbeiten zusammen, um ihr standardisiertes Repertoire kontinuierlich in gegenseitig referenzierte offizielle Versionen zu synchronisieren und arbeiten gemeinsam an Änderungen (Versionen werden erst offiziell, wenn beide Gremien jeweils neue Ergänzungen genehmigt und vollständig definiert haben).
  • In der Praxis erscheint der ISO/IEC 10646-Standard für die meisten Anwendungsentwickler als Teilmenge des umfassenderen Unicode-Standards, hat aber die gleichen Codepunkte für genau denselben Zeichensatz wie der Standard. Unicode (aus diesem Grund ist der Unicode-Standard standard besser bekannt, weil es besser für die computergestützte Verarbeitung geeignet ist und auch kostenlos im Internet verfügbar ist).

Universelles Transformationsformat (UTF)

Unicode und ISO / IEC 10646 akzeptieren verschiedene Formen der universellen Transformation, um einen gültigen Codepunkt darzustellen. Lassen Sie uns zitieren:

Die Zahl nach UTF stellt die minimale Anzahl Bits von Codepunkten dar, mit denen ein gültiger Codepunkt dargestellt wird.

Diese Transformationen wurden ursprünglich für die internen Darstellungs- und Codepunkt-Codierungsschemata von ISO / IEC 10646 erstellt , die ursprünglich 31-Bit-Codepunkte definieren konnten. Seitdem wurde der ISO/IEC 10646-Standard so geändert, dass die drei Formen voll kompatibel zueinander sind und die Codierung aller Codepoints erlauben (weil UTF-16 nur die Codepoints der ersten 17 Ebenen erlaubt) vertreten).

Unicode hat auch diese drei Transformationsformen aller gültigen Codepunkte (U + 0000 bis U + D7FF und U + E000 bis U + 10FFFF) sehr streng standardisiert und nur sie, sei es um Text in Form von Codepunktfolgen darzustellen, oder Codepunkte, die gültigen Zeichen zugewiesen oder reserviert oder Nicht-Zeichen zugewiesen sind. Die den Halbzonen (U + D800 bis U + DFFF) zugewiesenen Codepunkte, die nur in UTF-16 verwendet werden, sind einzeln ungültig, da sie verwendet werden, um durch ein Paar von 2 16-Bit-Codepunkten die Codepunkte darzustellen für die 16 zusätzlichen Pläne.

UTF-8

Die UTF-8 , angegeben in RFC  3629, sind die am häufigsten verwendeten Anwendungen für Unix und das Internet . Seine Codierung mit variabler Größe ermöglicht eine durchschnittlich kostengünstigere Speichernutzung (für Sprachen mit lateinischem Alphabet). Aber dies deutlich verlangsamt Operationen , die Unterkette Extraktionen in einigen Sprachen , der Index - Strings durch ganze Zahlen (zB = „815 th Zeichen des Strings“), weil es notwendig ist , um die Zeichen zu zählen von Anfang an der Schnur zu wissen wo das erste zu extrahierende Zeichen ist.

UTF-8 bietet auch, und das ist sein Hauptvorteil, die Kompatibilität mit der einfachen String-Manipulation in ASCII in Programmiersprachen . Daher können in C geschriebene Programme oft ohne Änderungen ausgeführt werden.

Anfangs konnte UTF-8 jeden Codepunkt zwischen U + 0000 und U + 7FFFFFFF (also bis zu 31 Bit) codieren. Diese Verwendung ist veraltet und der ISO / IEC 10646-Standard wurde geändert, um nur die gültigen Codepunkte der ersten 17 Aufnahmen zu unterstützen, außer denen der Halbzone, die den Codeelementen entspricht, die in UTF-16 für die Darstellung auf zwei Codes verwendet werden Elemente Codepunkte der 16 zusätzlichen Pläne. Auch die längsten Sequenzen in UTF-8 benötigen maximal 4 Bytes statt bisher 6 Bytes. Außerdem wurde UTF-8 zuerst von Unicode und dann von ISO/IEC 10646 geändert, um nur die kürzeste Darstellung jedes Codepunktes zu akzeptieren ( Eindeutigkeit der Codierung). Die Tatsache, dasselbe Zeichen auf verschiedene Weise darstellen zu können, stellte Sicherheitsprobleme dar, da der Hacker eine "gefilterte" Form durch eine andere Schrift umgehen konnte.

Sein Vorteil gegenüber UTF-16 (und UTF-32) besteht darin, dass Unterschiede in der Reihenfolge der Bytes, aus denen ein Wort besteht ( Endianness ) in einem Netzwerk heterogener Systeme kein Problem darstellen; daher wird diese Transformation heute von den meisten standardisierten Austauschprotokollen verwendet.

Andererseits ist UTF-8 vollständig kompatibel für die Übertragung von Texten durch Protokolle, die auf dem ASCII-Zeichensatz basieren, oder kann mit Austauschprotokollen kompatibel gemacht werden (auf Kosten einer Multi-Byte-Transformation von Nicht-ASCII-Zeichen). 8-Bit-codierte Zeichensätze ( entweder basierend auf ISO / IEC 8859 oder vielen anderen 8-Bit-codierten Zeichensätzen, die durch nationale Standards oder bestimmte proprietäre Systeme definiert sind).

Sein Hauptnachteil ist die Codierung mit sehr variabler Länge (1 Byte für die Codepunkte, die ASCII - ISO / IEC 646-Zeichen zugeordnet sind , 2 bis 4  Byte für die anderen Codepunkte), auch wenn die UTF-8-spezifische Autosynchronisation Die Codierung ermöglicht es, den Beginn einer Sequenz aus einer zufälligen Position zu bestimmen (durch Ausführen von höchstens 3 zusätzlichen Lesevorgängen der vorhergehenden Codepunkte). Diese Kodierung ist jedoch nicht darauf ausgelegt, die Verarbeitung von Zeichenketten zu erleichtern: Wir bevorzugen oft UTF-16, manchmal UTF-32 (Greedy in Memory).

Derivate
  • Einige Programme (z. B. die Oracle-Datenbank ), die ihre Unicode-Daten intern im UTF-16-Format darstellen, haben (oder hatten) einen Konvertierungsfehler in UTF-8: ein Zeichen zwischen U + 10000 und U + 10FFFF, gespeichert in zwei 16- Bitwörter, wird als Folge von zwei Unicode-Zeichen in UTF-8 umgewandelt. Dies führte zur "versehentlichen" Erstellung von CESU-8 und hat den Vorteil, die Verwendung von Unicode auf 16-Bit-Plattformen zu erleichtern.
  • Das Unicode-Nullzeichen U + 0000 wird in UTF-8 als einzelnes Nullbyte 0x00 codiert . Nach dem Unicode-Standard hat dieses Zeichen keine besondere Bedeutung; jedoch (aus historischen konzeptionellen Gründen) betrachten die C-Sprachbibliotheken zur Stringverarbeitung dieses Steuerzeichen als ein Ende des Strings, was die Implementierung einiger Anwendungsfälle erschwert . Unter der Java-Plattform wurde die  Version "  (en) Modified UTF-8 " geboren, indem die "16-Bit" -Portabilität des CESU-8 genutzt und die Möglichkeit der Codierung von U + 0000 unter der Sequenz 0xC0 0x80 . hinzugefügt wurde (normalerweise in UTF-8) verboten: Durch diesen Austausch mit den nativen C-Bibliotheken der unterstützten Plattform kann die Plattform problemlos alle gültigen Unicode-Texte sowie die kompilierten Klassendateien verwalten (portables alternatives Format, unabhängig von Endianness und Word Größe).
UTF-16

Das UTF-16 ist ein guter Kompromiss, wenn der Speicherplatz nicht zu klein ist, denn die überwiegende Mehrheit der den Schriften moderner Sprachen zugeordneten Unicode-Zeichen (einschließlich der am häufigsten verwendeten Zeichen) befinden sich in der mehrsprachigen Planbasis und können daher dargestellt werden auf 16 Bit. Die französische Version der ISO / IEC 10646 nennt diese 16-Bit-Wörter "seizets", die internationale Version beschreibt sie jedoch als klassische 16-Bit-Wörter, die aus zwei Bytes bestehen und den üblichen Regeln des Endismus unterliegen .

UTF-16-Kodierung
hallo \ lo DC00 DC01    ...    DFFF
D800 10.000 10001 ... 103FF
D801 10400 10401 ... 107FF
  ⋮
DBFF 10FC00 10FC01 ... 10FFFF

Die Codepunkte der sechzehn zusätzlichen Ebenen erfordern eine Transformation auf zwei 16-Bit-Wörtern:

  • subtrahiere 0x10000 vom Codepunkt und belasse eine 20-Bit-Zahl im Bereich von 0x00 bis 0xFFFFF;
  • die 10 höchstwertigen Bits (eine Zahl zwischen 0x00 und 0x3FF) werden zu 0xD800 addiert und ergeben die erste Codeeinheit in der oberen Halbzone ( 0xD800 bis 0xDBFF );
  • die 10 niedrigstwertigen Bits (eine Zahl zwischen 0x00 und 0x3FF) werden zu 0xDC00 addiert und ergeben die zweite Codeeinheit in der unteren Halbzone ( 0xDC00 bis 0xDFFF );

Da sich die meisten der am häufigsten verwendeten Zeichen in der Basisebene befinden, wird die Codierung zusätzlicher Clips in der Software oft schlecht getestet, was selbst in weit verbreiteter Software zu Fehlern oder Sicherheitsproblemen führt. Bestimmte rechtliche Rahmenbedingungen wie GB 18030 können die Unterstützung zusätzlicher Pläne verlangen , die insbesondere Zeichen enthalten, die in Eigennamen vorkommen.

Es ist möglich, den Beginn der Codiersequenz von jeder Stelle in einem in UTF-16 dargestellten Text durch höchstens eine zusätzliche Lesung zu bestimmen, nur wenn diese Codestelle im unteren Halbbereich liegt. Dieses Formular ist für die Darstellung von Texten mit wenigen ASCII-Zeichen (U + 0000 bis U + 007F) kostengünstiger und schneller zu verarbeiten als UTF-8.

Diese Transformation weist jedoch zwei inkompatible Codierungsschemata auf, die von der Reihenfolge der Bytes in der 16-Bit-Ganzzahldarstellung abhängen. Um diese Mehrdeutigkeit aufzulösen und die Übertragung zwischen heterogenen Systemen zu ermöglichen, ist es erforderlich, Informationen über das verwendete Codierungsschema (UTF-16BE oder UTF-16LE) hinzuzufügen oder dem codierten Text die Darstellung des Codepunktes voranzustellen (zugewiesen dem Zeichen "Geschütztes Leerzeichen der Breite Null", ein Zeichen, das jetzt nur für diese alleinige Verwendung als Byte-Order-Marker reserviert ist), da der Codepunkt "umgekehrt" U + FFFE gültig ein Nicht-Zeichen ist, in Texten verboten konform zu Unicode und ISO/IEC 10646 .

Der andere Fehler von UTF-16 besteht darin, dass damit transformierter und mit einem der beiden Kodierungsschemata übertragener Text eine große Anzahl von Bytes enthält, die null sind oder einen Wert haben, der mit den d-Werten in Konflikt steht.'Bytes, die von bestimmten Austauschprotokollen reserviert sind.

Dies ist insbesondere die Codierung, die die Java- Plattform intern verwendet, sowie Windows für seine Unicode-kompatiblen APIs (mit dem Typ wchar).

UTF-32

Das UTF-32 wird verwendet, wenn der Speicherplatz kein Problem darstellt und wir direkt und ohne Größenänderung auf Zeichen zugreifen müssen ( Ägyptische Hieroglyphen ).

Der Vorteil dieser standardisierten Transformation besteht darin, dass alle Codeelemente die gleiche Größe haben. Es ist daher nicht erforderlich, zusätzliche Codepunkte zu lesen, um den Beginn der Darstellung eines Codepunktes zu bestimmen.

Dieses Format ist jedoch besonders unwirtschaftlich (auch im Speicher), da es unnötigerweise mindestens ein Byte (immer Null) pro Zeichen "verschwendet". Die Speichergröße eines Textes wirkt sich negativ auf die Leistung aus, da bei vollem Arbeitsspeicher mehr Lese- und Schreibvorgänge auf die Festplatte erforderlich sind , und verringert auch die Leistung des Speichercaches von Prozessoren.

Für Texte, die in aktuellen modernen Sprachen geschrieben sind (abgesehen von bestimmten seltenen Zeichen der ergänzenden ideographischen Ebene) und daher nur die Codepunkte der mehrsprachigen Basisebene verwenden, verdoppelt diese Transformation den erforderlichen Speicher im Vergleich zu UTF-16 .

Wie UTF-16 hat UTF-32 mehrere Kodierungsschemata, abhängig von der Reihenfolge der Bytes, die eine ganze Zahl von mehr als 8 Bits bilden (zwei Kodierungsschemata von UTF-32 sind standardisiert, UTF-32BE und UTF-32LE). Es ist daher auch erforderlich, dieses Kodierungsschema anzugeben oder es durch Voranstellen des Textes durch die Darstellung des Kodepunkts U + FEFF in UTF-32 zu bestimmen. Wie bei UTF-16 macht das Vorhandensein von Null-Bytes in den standardisierten Codierungsschemata von UTF-32 es mit vielen Protokollen für den Austausch zwischen heterogenen Systemen inkompatibel.

Auch dieses Format wird meistens nur sehr lokal für bestimmte Verarbeitungen als einfacher zu handhabende Zwischenform verwendet, und wir bevorzugen oft die UTF-16-Transformation, die für die Verarbeitung und Speicherung großer Textmengen oft effizienter ist, die Konvertierung zwischen die beiden sind sehr einfach durchzuführen und im Hinblick auf den Verarbeitungsaufwand sehr kostengünstig.

Tatsächlich werden viele Textverarbeitungsbibliotheken nur mit UTF-16 geschrieben und sind effizienter als UTF-32, selbst wenn die Texte Zeichen zusätzlicher Ebenen enthalten (da dieser Fall von Zahlen in den allermeisten Fällen selten bleibt).

Beachten Sie jedoch, dass die Transformation zu UTF-32 32-Bit-Codepunkte verwendet, von denen viele möglicherweise keinen gültigen Codepunkt darstellen (Werte außerhalb der beiden Intervalle, die gültige Codepunkte darstellen U + 0000 bis U + D7FF und U + E000 bis U + 10FFFF), daher kein gültiges oder reserviertes Zeichen (alle darin enthaltenen Informationen können daher kein Text im Sinne von Unicode sein). Die Übertragung von Texten, die diese ungültigen Codewerte in einem der standardisierten Codierungsschemata von UTF-32 verwenden, ist für jedes Unicode-konforme System verboten (es ist notwendig, stattdessen die Codepunkte für den privaten Gebrauch zu verwenden), da dies unmöglich ist um sie in einer anderen UTF-Transformation darzustellen, mit der die drei standardisierten UTFs bijektiv kompatibel sind.

Chinesischer Standard GB 18030

Dies ist eine Transformation von Unicode, die nicht vom Unicode-Konsortium definiert wird, sondern von der Standardverwaltung in China, wo ihre Unterstützung in Anwendungen obligatorisch ist. Historisch war dies ein codierter Zeichensatz, der durch eine algorithmische Transformation erweitert wurde, um das gesamte UCS-Repertoire zu unterstützen, wodurch eine große Code-zu-Code-Korrespondenztabelle vervollständigt wurde.

Unicode-Schriften

Zu behaupten, dass Unicode Zeichen kodiert, kommt der Behauptung gleich, dass es abstrakten Symbolen eine Zahl zuweist, nach einem Prinzip der logischen Kodierung. Unicode hingegen kodiert keine grafischen Darstellungen von Zeichen, Glyphen . Es gibt daher keine Bijektion zwischen der Darstellung des Zeichens und seiner Nummer, da alle grafischen Stilvarianten vereinheitlicht sind.

Darüber hinaus ist die Auswahl einer Glyphe durch einen Code im Gegensatz zu einer klassischen ASCII- oder Latin-1- Schrift nicht eindeutig und oft kontextabhängig und kann auch dieselbe Glyphe für verschiedene Codes anzeigen. So kann das französische Zeichen „é“ auf zwei Arten beschrieben werden: entweder durch direkte Verwendung der dem „é“ entsprechenden Zahl oder indem man der Zahl des „e“ ohne Jagd nach der des akuten Akzents folgt. Unabhängig davon, welche Option Sie wählen, wird dieselbe Glyphe angezeigt. Wir werden vom ersten Zeichen sagen, dass es vorkomponiert ist, vom zweiten, dass es eine Komposition ist (zwei Zeichen bilden eine einzelne Glyphe, die aus beiden besteht). Dies ist erlaubt und wird sogar dringend empfohlen, da die verschiedenen Kodierungsformen von Unicode als "kanonisch gleichwertig" eingestuft werden, was bedeutet, dass zwei gleichwertige Kodierungsformen gleich behandelt werden sollten.

Viele zusammengesetzte Zeichen sind in diesem Fall und können auf diese zwei Arten codiert werden (oder mehr, einige zusammengesetzte Zeichen können auf mehr als eine Weise zerlegt werden, insbesondere wenn sie mehrere diakritische Zeichen enthalten). In den meisten Fällen ist das vorkomponierte Zeichen für die Kodierung des Textes vorzuziehen, wenn es vorhanden ist (dies ist beispielsweise bei polytonischem Griechisch der Fall , das, in Zerlegung kodiert, grafisch möglicherweise nicht zufriedenstellend ist: Je nach Schriftart sind die Zeichen unterschiedlich, Bestandteile der Glyphe sind manchmal schlecht angeordnet und schwer zu lesen). Allerdings haben nicht alle zusammengesetzten Zeichen einen eindeutigen Codepunkt für ihre vorkomponierte Form.

Ebenso erfordern einige Schriftsysteme, wie Devânagarî , Persisch oder Arabisch , eine komplexe Behandlung von Ligaturen  : Die Grapheme ändern ihre Form je nach ihrer Position oder ihren Nachbarn (siehe Kontextvariante und Gemeinsamer Buchstabe ). Die Auswahl der richtigen Glyphe erfordert eine Verarbeitung, um zu bestimmen, welche kontextbezogene Form in der Schriftart ausgewählt werden soll, obwohl alle kontextbezogenen Formen identisch in Unicode codiert sind.

Aus diesen Gründen sollte eine Unicode-Schriftart mit Vorsicht behandelt werden. Beispielsweise reicht eine Schriftart mit allen vorhandenen Glyphen nicht aus. Es ist auch notwendig, dass das Anzeigesystem (die Rendering-Engine ) die Mechanismen besitzt, die in der Lage sind , Ligaturen , kontextuelle Varianten und gemeinsame Formen für bestimmte Sprachen zu verarbeiten. Umgekehrt verdient eine Schrift, die nur einen Teil der Zeichen darstellt, diese aber richtig darzustellen weiß, eher den Titel "Unicode-Schrift". Schließlich können bestimmte technische Einschränkungen von Schriftformaten verhindern, dass sie das gesamte Verzeichnis unterstützen. In der Praxis ist es (im Jahr 2009) unmöglich, eine einzelne Schriftart zu finden, die das gesamte Verzeichnis unterstützt.

Ein Unicode-Zeichenfont ist daher nur ein Font, der es ermöglicht, einen in allen von Unicode autorisierten Formen codierten Text direkt anzuzeigen und eine zusammenhängende Teilmenge zu unterstützen, die an eine oder mehrere Sprachen angepasst ist, um ein oder mehrere Skripte zu unterstützen. Keine Unicode-Schrift kann allein "funktionieren", und die vollständige Schreibunterstützung erfordert die Unterstützung dieser in einer Rendering-Engine , die in der Lage ist, äquivalente Kodierungsformen zu erkennen, nach kontextbezogenen Formen im Text zu suchen und die verschiedenen Glyphen einer mit Unicode kodierten Schriftart auszuwählen. bei Bedarf die in der Schrift selbst enthaltenen Korrespondenztabellen verwenden.

Technische Details

Softwarebibliotheken

Mit der plattformübergreifenden Softwarebibliothek der ICU können Sie mit Unicode codierte Daten bearbeiten. Plattformspezifische Unicode-Unterstützung wird auch von modernen Systemen ( Java , Microsoft Windows , GNU/Linux , Standard-C/C++- Bibliotheken , Python , etc.) integriert.

Die zum Speichern von Unicode-Variablen zu verwendenden Typen sind:

Typen, die mit Unicode in Programmiersprachen kompatibel sind
Programmiersprache Geben Sie für ein einzelnes Zeichen ein Geben Sie einen beliebigen Text ein
VS char[4] Wo wchar_t[2] char[] Wo wchar_t[]
C++ char[4] Wo wchar_t[2] char[]oder wchar_t[]oder std::stringoderstd::wstring
Java char[2] Wo int char[] Wo String
ICU-Bibliothek (für C/C++ oder Java) UChar UChar[]oder String,UnicodeString
JavaScript oder ECMAScript char string
C# oder J# char string
Delphi char[4] Wo widechar[2] string Wo widestring
Python 2 unicode
Python 3 str
gehen rune(= int32) string Wo []byte
Schnell Character String
Anmerkungen
  1. In UTF-8
  2. Beachten Sie jedoch, dass der wchar_tSprachtyp C nicht immer die Codierung aller Unicode-Zeichen zulässt, da der Standard dieser Sprache keine ausreichende Mindestanzahl für diesen Standardtyp vorsieht. Viele Compiler der Sprache definieren jedoch wchar_tmit 32 Bit (oder sogar 64 Bit in Umgebungen, die standardmäßige 64-Bit-Ganzzahlen verarbeiten), was ausreichend ist, um jeden Punkt von standardisiertem Unicode-Code zu speichern. Aber andere Compiler stellen wchar_tauf 16 Bit dar (insbesondere unter Windows in einer 16- oder 32-Bit-Umgebung), sogar auf 8 Bit nur (insbesondere in eingebetteten Umgebungen ohne allgemeines Betriebssystem), da wchar_tsie die gleiche Darstellung wie der Typ verwenden können, charder mindestens 8 Bit.
  3. Ähnlich wie C und C ++ hat die Java-Sprache einen Einheitentyp, der es erlaubt, 16 Bits zu codieren, aber keinen einzelnen Codepunkt mit beliebigem Wert zu codieren (der native Typ charist nur eine positive 16-Bit-Ganzzahl) . Um standardisierte Zeichen aus dem Vordergrund zu manipulieren, müssen Sie ein Paar Codepunkte verwenden, von denen jeder einen Wert enthält, der den beiden Codepunkten entspricht, die durch das UTF-16-Formular definiert sind. Auch die Objekttypen Stringoder char[2]eignen sich am besten zur Darstellung eines Unicode-Zeichens. Seit Java 1.4.1 bietet die Standardbibliothek volle Unicode-Unterstützung dank des nativen Typs int(der eine ganze Zahl auf 32 Bit definiert ist) und der statischen Methoden der Standardklasse Character(ein instanziiertes Objekt dieses Typs Characterlässt dies jedoch nicht zu, genau wie der native Typ char, um einen beliebigen Codepunkt zu speichern).
  4. JavaScript hat verschiedene nicht standardisierte Implementierungen, einige ältere, die nicht mehr als 16 Bit pro Zeichen und manchmal nur 8 Bit unterstützen. Der ECMAScript-Standard dieser Sprache definiert jedoch eine Dienstprogrammklasse Characterauf 32 Bit (eigentlich basierend auf der Klasse Number), die alle Codepunkte der 17 standardisierten Pläne unterstützen muss, während die Zeichenfolgen Zeichen verwenden, die obligatorisch auf 16 Bit codiert sind (aber ohne Einschränkung, die die Paarung der UTF-16-Codeeinheiten verstärkt, wobei der Typ ECMAScript-Strings Stringnicht auf die einzige UTF-16-Kodierung beschränkt ist, sondern Vektoren von ganzzahligen Konstanten ohne Einschränkung auf 16 Bit kodiert ist, um die (Interoperabilität mit Java und anderen Sprachen, die auch keine UTF-16-Konformitätsbeschränkungen in ihren nativen Datentypen erzwingen). Diese beiden Sprachen unterstützen keine explizite Typisierung von Variablen, da der Typ dynamisch durch die ihnen zugewiesenen Werte definiert wird (auch mehrere interne Darstellungen sind möglich, deren Unterschiede normalerweise für den Programmierer transparent sind).

Unicode leidet jedoch immer noch unter einer schwachen Unterstützung für reguläre Ausdrücke durch einige Software, obwohl Bibliotheken wie ICU und Java diese unterstützen können. Eine solche Unterstützung ist für ECMAScript noch nicht standardisiert und wird nur mit Hilfe von mit der Sprache erstellten Bibliotheken oder Schnittstellen zur Interoperabilität mit anderen Systemen (insbesondere mit CORBA , COM ) oder Sprachen (insbesondere C++ und Java ) bereitgestellt .

Partitionierung

Die aktuelle Partitionierung finden Sie auf der offiziellen Unicode-Website. Angesichts der wichtigen Rolle von Unicode heute ( ISO / IEC 10646 ) werden hier jedoch die wichtigsten Zeichenblöcke beschrieben. Die französischen Namen sind die offiziellen Namen von ISO / IEC 10646 , dem internationalen zweisprachigen Standard, der dieselben Zeichen wie Unicode verwendet. Sie sind so offiziell wie die englischen Namen.

Der alte Unicode 1.0- Standard ist veraltet und nicht kompatibel mit ISO / IEC 10646 und Unicode 1.1 und all seinen späteren Versionen; die Hauptinkompatibilität ist die der Hangul-Zeichenblöcke, die zum Schreiben der koreanischen Sprache verwendet werden, die ihre Position geändert haben und deren alte Codepunkte inzwischen anderen Blöcken zugewiesen wurden. Die folgende Tabelle ist kompatibel mit ISO / IEC 10646 (alle Versionen) und Unicode 1.1 (oder höher).

Hinweis: Die Schreibweise von Blocknamen ist nicht normativ. „Basic Latin“ ist also gleichbedeutend mit „BASIC LATIN“.

In den folgenden Tabellen bedeutet jeder Blockname mit einem Hinweis zu einem offiziellen Unicode-PDF, dass die mit diesem Block verknüpfte Wikipedia-Seite nicht vorhanden oder falsch ist.

Mehrsprachiger Basistarif (PMB, 0000 bis FFFF)
Codepunkte Offizieller Blockname Offizielles PDF Finde mehr heraus
Start Ende
0000 007F Grundlegende C0- und lateinische Befehle U0000 siehe ISO / IEC 646 , ASCII , lateinisches Alphabet , Unicode-Steuerzeichen
0080 00FF C1-Befehle und Latin-1-Ergänzung U0080 siehe ISO/IEC 8859 , ISO/IEC 8859-1 , lateinisches Alphabet , Unicode-Prüfzeichen
0100 017F Lateinisches erweitertes A U0100 siehe lateinisches Alphabet
0180 024F Lateinisches erweitertes B U0180 siehe lateinisches Alphabet
0250 02AF Internationales phonetisches Alphabet (API) U0250 siehe Internationales phonetisches Alphabet
02B0 02FF Änderungsbuchstaben mit Breite U02B0 siehe Diakritik , Lateinisches Alphabet , Diakritik des lateinischen Alphabets , Internationales phonetisches Alphabet
0300 036F Diakritik U0300 siehe Diakritik , Diakritik des lateinischen Alphabets , Diakritik des griechischen Alphabets , koptisches Alphabet , Diakritik des kyrillischen Alphabets
0370 03FF Griechisch und Koptisch U0370 siehe Griechisches Alphabet und Koptisches Alphabet
0400 04FF kyrillisch U0400 siehe Kyrillisches Alphabet
0500 052F Kyrillische Ergänzung U0500 siehe Kyrillisches Alphabet
0530 058F Armenisch U0530 siehe Armenisches Alphabet
0590 05FF hebräisch U0590 siehe hebräisches Alphabet , Diacritics , Diacritics des hebräischen Alphabets
0600 06FF Arabisch U0600 siehe Arabisches Alphabet
0700 074F Syrisch U0700 siehe Syrisch
0750 077F Arabische Ergänzung U0750 siehe Arabisches Alphabet
0780 07BF Thâna U0780 siehe Maledivisches Alphabet
07C0 07FF N'ko U07C0 siehe N'ko
0800 083F Samariter U0800 siehe Samaritanisches Alphabet
0840 085F Mandean U0840 siehe Mandäisches Alphabet
0860 086F Syrische Ergänzung U0860 siehe Syrisch
0870 089F Reservieren - -
08A0 08FF Erweitertes Arabisch A U08A0 siehe arabisches Alphabet , Diacritics , Diacritics des arabischen Alphabets
0900 097F Devanagari U0900 siehe Devanâgarî
0980 09FF Bengali U0980 siehe Bengalenî
0A00 0A7F Gurmoukhi U0A00 siehe Gurmukh
0A80 0AFF Gujarat U0A80 siehe Gujarati-Alphabet
0B00 0B7F Oriya U0B00 siehe Oriya
0B80 0BFF Tamil U0B80 siehe Tamil
0C00 0C7F Teluguug U0C00 siehe Telougu
0C80 0CFF Kannara U0C80 siehe Kannara
0D00 0D7F Malayalam U0D00 siehe Malayalam
0D80 0DFF Singhalesisch U0D80 siehe Singhalesisch
0E00 0E7F Thai U0E00 siehe Thai
0E80 0EFF Laos U0E80 siehe Laos
0F00 0FFF Tibetisch U0F00 siehe Tibetisch
1000 109F birmanisch U1000 siehe Burmesisch
10A0 10FF georgisch U10A0 siehe Georgisch , Georgisches Alphabet
1100 11FF Jamos Hangul U1100 siehe Hangûl
1200 137F äthiopisch U1200 siehe Alphasyllabaire geez
1380 139F Äthiopischer Zuschlag U1380 siehe Alphasyllabaire geez
13A0 13FF Cherokee U13B0 siehe Cherokee Syllabary
1400 167F Einheitliche kanadische indigene Silbenbücherlab U1400 siehe Sprachen der amerikanischen Ureinwohner
1680 169F Ogam U1680 siehe oghamisches Alphabet
16A0 16FF Runen U16A0 siehe Runenalphabet
1700 171F Tagalog U1700 siehe Tagalog
1720 173F Hanunóo U1720 siehe Hanunóo-Alphabet  (de)
1740 175F Bouhide U1740 siehe Buhid  (de)
1760 177F Tagbanoua U1760 siehe Alphabet Tagbanoua  (de)
1780 17FF Khmer U1780 siehe Khmer
1800 18AF mongolisch U1800 siehe Mongolisch
18B0 18FF Erweiterte kanadische indigene Syllabaries U18B0 siehe Sprachen der amerikanischen Ureinwohner
1900 194F Limbou U1900 siehe Limbou
1950 197F Tai it U1950 siehe Taï-le
1980 19DF Neues Taï lü U1980 siehe Tai lü
19E0 19FF Khmer-Symbole U19E0 siehe Khmer
1A00 1A1F Bougui U1A00 siehe Bugis Language , Schreiben von Lontara
1A20 1AAF Tai-Tham U1A20 siehe Alphabet Taï Tham  ( fr )
1AB0 1AFF Erweiterte diakritische Zeichen U1AB0 siehe Diakritik
1B00 1B7F Balinesisch U1B00 siehe balinesische Schrift
1B80 1BBF Soundanese U1B80 siehe Soundanese , Sudanesisches Alphabet  (en)
1BC0 1BFF Batak U1BC0 siehe Batak-Skript
1C00 1C4F Lepcha U1C00 siehe Alphabet Lepch  (de)
1C50 1C7F Ol chiki U1C50 siehe Alphabet santâlî
1C80 1C8F Erweitertes kyrillisches C U1C80 siehe Kyrillisches Alphabet , Kirchenslawisch
1C90 1CBF Erweitertes Georgisch U1C90 siehe Georgisch , Georgisches Alphabet
1CC0 1CCF Sundanesische Ergänzung U1CC0 siehe Soundanese , Sudanesisches Alphabet  (en)
1CD0 1CFF Vedische Erweiterungen U1CD0 siehe Sanskrit
1D00 1D7F Phonetische Ergänzung U1D00 siehe Internationales phonetisches Alphabet
1D80 1DBF Erweiterter phonetischer Zuschlag U1D80 siehe Internationales phonetisches Alphabet
1DC0 1DFF Ergänzung für diakritische Zeichen U1DC0 siehe Diakritik
1E00 1EFF Latein erweitert zusätzlich U1E00 siehe lateinisches Alphabet
1F00 1FFF Erweitertes Griechisch U1F00 siehe Griechisches Alphabet , Polytonisches Griechisch
2000 206F Allgemeine Satzzeichen U2000 siehe Satzzeichen , Leerzeichen
2070 209F Exponenten und Indizes U2070 siehe Exponent und Subscript
20A0 20CF Währungssymbole U20A0 siehe Währungssymbol
20D0 20FF Kombinatorische Zeichen für Symbole U20D0 siehe Pfeil , Drehung
2100 214F Buchstabensymbole U2100 siehe Temperatur , Mathematisches Symbol , Markenrechtliche Symbole
2150 218F Ziffernformen U2150 siehe Römische Zahl , Bruch
2190 21FF Pfeile U2190 siehe Pfeil
2200 22FF Mathematische Operatoren U2200 siehe Mathematische Operatoren
2300 23FF Diverse technische Zeichen U2300 siehe Griechisches Alphabet , Satzzeichen , Pfeil , mathematische Symbole , Emoji
2400 243F Befehlspiktogramme U2400 siehe ISO / IEC 8859 , ISO / IEC 646 , Control C0  (en)
2440 245F Optische Zeichenerkennung U2430 siehe Optische Zeichenerkennung
2460 24FF Alphanumerisch eingekreist U2460 siehe lateinisches Alphabet , arabische Ziffern
2500 257F Netze U2500 siehe Formzeichen  (de)
2580 259F Pflastersteine U2580 siehe Formzeichen  (in) , Rechteck
25A0 25FF Geometrische Formen U25A0 siehe Geometrische Form
2600 26FF Verschiedene Symbole U2600 siehe Symbol , Emoji , Französisches Kartenspiel , Schach , Geschlechtssymbol
2700 27BF Casseau U2700 siehe Symbol , arabische Ziffern , Satzzeichen , Emoji , Matheoperatoren , Pfeil
27C0 27EF Verschiedene mathematische Symbole A U27C0 siehe Mathematisches Symbol
27F0 27FF Pfeilergänzung A U27F0 siehe Pfeil
2800 28FF Braille-Kombinationen U2800 siehe Blindenschrift
2900 297F Pfeilergänzung B U2900 siehe Pfeil
2980 29FF Verschiedene mathematische Symbole B U2980 siehe Mathematisches Symbol
2A00 2AFF Zusätzliche mathematische Operatoren U2A00 siehe Mathematische Operatoren
2B00 2BFF Verschiedene Symbole und Pfeile U2B00 siehe Pfeil , Emoji
2C00 2C5F Glagotic U2C00 siehe glagolitisches Alphabet
2C60 2C7F Lateinisches erweitertes C U2C00 siehe Lateinisches Alphabet , Uiguren
2C80 2CFF koptisch U2C80 siehe koptisches Alphabet
2D00 2D2F Georgische Ergänzung U2D00 siehe Georgisch , Georgisches Alphabet
2D30 2D7F Tifinagh U2D30 siehe Tifinagh und Berbersprachen
2D80 2DDF Äthiopisch verlängert U2D80 siehe Alphasyllabaire geez
2DE0 2DFF Erweitertes kyrillisches A U2DE0 siehe Kyrillisches Alphabet , Diakritika , Diakritik des kyrillischen Alphabets
2E00 2E7F Satzzeichenzusatz U2E00 siehe Satzzeichen
2E80 2EFF Zusätzliche Formen von CJC-Schlüsseln U2E80 siehe Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
2F00 2FDF Chinesische Kangxi-Schlüssel U2F00 siehe Kangxi Zeichenwörterbuch
2FE0 2FEF Reservieren - -
2FF0 2FFF Ideografische Beschreibung U2FF0 siehe Ideografische Beschreibung
3000 303F CJC-Symbole und Satzzeichen U3000 siehe Interpunktion , Chinesisch, Japanisch und Koreanisch , Sinogramm , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
3040 309F Hiragana U3040 siehe Hiragana , Schriften des Japanischen , Japanisch
30A0 30FF Katakana U30A0 siehe Katakana , Schriften des Japanischen , Japanisch
3100 312F Bopomofo U3100 siehe Bopomofo , Chinesisch, Japanisch und Koreanisch , Sinogramme
3130 318F Hangul-Kompatibilitätsjamos U3130 siehe Hangûl , Sinogramm , Koreanisch
3190 319F Kanbun U3190 siehe Kanbun , Sinogramme
31A0 31BF Bopomofo verlängert U31A0 siehe Bopomofo , Sinogramme
31C0 31EF CJC-Eigenschaften U31C0 siehe Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
31F0 31FF Katakana phonetische Erweiterung U31F0 siehe Katakana , Schriften des Japanischen , Japanisch
3200 32FF Eingekreiste CJC-Buchstaben und Monate U3200 siehe Abbildungen Arabisch , Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
3300 33FF CJC-Kompatibilität U3000 siehe Maßeinheit , Chinesisch, Japanisch und Koreanisch , Sinogramm , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
3400 4DBF Ergänzung A zu den CJC Unified Ideograms
( Teil 1 ) ( Teil 2 )
U3400 siehe Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
4DC0 4DFF Hexagramme des Klassikers der Mutationen oder Yi Jing U4DC0 siehe Yi Jing , Hexagramm , Chinesisch, Japanisch und Koreanisch , Sinogramm
4E00 9FFF CJC Unified Ideograms
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 ) ( Teil 6 )
U4E00 siehe Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch , Vietnamesisch
A000 A48F Syllabary yi der frischen Berge UA000 siehe Syllabary yi
A490 A4CF Yi-Schlüssel UA490 siehe Syllabary yi
A4D0 A4FF Lisu UA4D0 siehe Lisu , Alphabet Fraser  (en)
A500 A63F Vai UA500 siehe Syllabaire vaï
A640 A69F Erweitertes kyrillisches B UA640 siehe Kyrillisches Alphabet
A6A0 A6FF Bamoun UA6A0 siehe Bamoun-Skript
A700 A71F Änderung der Tonbuchstaben UA700 siehe Sprache in Tönen , Chinesische Sprachen
A720 A7FF Lateinisches erweitertes D UA720 siehe Lateinisches Alphabet
A800 A82F Sylot nâgrî UA800 siehe Sylotî nâgrî  (de)
A830 A83F Indische gemeinsame digitale Formen UA830 siehe Indien
A840 A87F Phags-pa UA840 siehe Phagpa-Skript
A880 A8DF Saurachtra UA880 siehe Alphabet Saurashtra  (de)
A8E0 A8FF Erweiterte devanāgarī UA8E0 siehe Devanâgarî
A900 A92F Kayah li UA900 siehe Alphabet Kayah Li
A930 A95F Rejang UA930 siehe Rejang . schreiben
A960 A97F Jamos Hangul Extended A UA960 siehe Hangûl , Sinogramm , Koreanisch
A980 A9DF Javanisch UA980 siehe Javanisches Skript
A9E0 A9FF Burmesisch erweitertes B UA9E0 siehe Burmesisch , Burmesische Schrift
AA00 AA5F Cham UAA00 siehe Cham
AA60 AA7F Burmesisch erweitertes A UAA60 siehe Burmesisch , Burmesische Schrift
AA80 AADF Tai-Viet UAA80 siehe Alphabet taï viêt , Tay dam , Tay don , Tay Song  ( fr )
AAE0 AAFF Meitei mayek verlängert UAAE0 siehe Meitei , Meitei- Skript
AB00 AB2F Äthiopisches erweitertes A UAB00 siehe Alphasyllabaire geez
AB30 AB6F Lateinisches erweitertes E UAB30 siehe lateinisches Alphabet , Teuthonista , Alphabet d'Ascoli , Alphabet Rousselot-Gilliéron
AB70 ABBF Cherokee-Ergänzung UAB70 siehe Cherokee Syllabary
ABC0 ABFF Meitei mayek UABC0 siehe Meitei , Meitei- Skript
AC00 D7AF Hangul-Silben
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 )
UAC00 siehe Hangûl , Sinogramm , Koreanisch
D7B0 D7FF Jamos Hangul Extended B U27B0 siehe Hangûl , Sinogramm , Koreanisch
D800 DBFF Hohe Indirektionshalbzone UD800 siehe Obere Halbzone der Umleitung
DC00 DFFF Halbzone mit geringer Indirektion UDC00 siehe Halbzone mit geringer Indirektion
E000 F8FF Privatnutzungsbereich
( Teil 1 ) ( Teil 2 )
UE000 Kein offiziell definiertes Merkmal
F900 FAFF CJC-Kompatibilitäts-Ideogramme UF900 siehe Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
FB00 FB4F Alphabetische Darstellungsformen UFB00 siehe Lateinisches Alphabet , Hebräisches Alphabet , Armenisches Alphabet
FB50 FDFF Arabische Präsentationsformen A
( Teil 1 ) ( Teil 2 ) ( Teil 3 )
UFB50 siehe Arabisches Alphabet
FE00 FE0F Variantenauswahl UFE00 siehe Selektorvariante  (in)
FE10 FE1F Vertikale Formen UFE10 siehe Satzzeichen , GB 18030
FE20 FE2F Kombinatorische Halbzeichen UFE20 siehe Diakritik
FE30 FE4F CJC-Kompatibilitätsformulare UFE30 siehe Chinesisch, Japanisch und Koreanisch , Sinogramme , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch
FE50 FE6F Kleine Abweichungen in der Form UFE50 siehe Satzzeichen , GBK , GB 2312 , CNS 11643  (de)
FE70 FEFF Arabische Präsentationsformen B UFE70 siehe Arabisches Alphabet
FF00 FFEF Formen mit halber und voller Breite UFF00 Sehen Sie Formen in halber und voller Breite , Chinesisch, Japanisch und Koreanisch , Sinogramm , Chinesische Schrift , Chinesische Sprachen , Schriften Japanisch , Japanisch , Hanja , Koreanisch , ASCII , Lateinisches Alphabet
FFF0 FFFF Spezielle Charaktere UFFF0 siehe Sonderzeichen
Komplementärer mehrsprachiger Plan (PMC, 10.000 bis 1FFFF)
Codepunkte Offizieller Blockname Offizielles PDF Finde mehr heraus
Start Ende
10.000 1007F Lineare Silbenschrift B U10000 siehe Linear B
10080 100FF Lineare B-Ideogramme U10080 siehe Linear B
10100 1013F Ägäische Zahlen U10100 siehe Zahlen iEgean  (de)
10140 1018F Antike griechische Zahlen U10140 siehe Altgriechische Zahlen
10190 101CF Antike Symbole U10190 siehe Einheiten Roman , römische Währung
101D0 101FF Phaistos-Scheibe U101D0 siehe Phaistos Disc
10200 1027F Reservieren - -
10280 1029F Lykisch U10280 siehe Lykien
102A0 102DF Carien U102A0 siehe Karisches Alphabet
102E0 102FF Koptische Epaktzahlen U102E0 siehe Koptisch
10300 1032F Kursivschrift U10300 siehe Altes kursives Alphabet
10330 1034F gotisch U10330 siehe Gothic
10350 1037F Altes Perm U10350 siehe Altes Perm-Alphabet
10380 1039F Ugaritisch U10380 siehe Ugaritisches Alphabet
103A0 103FF Altpersisch U103A0 siehe Altpersisch
10400 1044F Wüste U10400 siehe Alphabet Wüste
10450 1047F Shavien U10450 siehe Shavian Alphabet
10480 104AF Osmanya U10480 siehe Osmanya-Alphabet
104B0 104FF Osage U104B0 siehe Osage
10500 1052F Elbasan U10500 siehe Elbasan-Skript
10530 1056F Aghbanian U10530 siehe Aghbanisches Alphabet
10570 105FF Reservieren - -
10600 1077F Linear A U10600 siehe Linear A
10780 107FF Reservieren - -
10800 1083F Zypriotische Silbenschrift U10800 siehe zypriotische Silbenschrift
10840 1085F Kaiserliches Aramäisch U10840 siehe Aramäisches Alphabet
10860 1087F Palmyrenisches Alphabet U10860 siehe Palmyrenisches Alphabet
10880 108AF Nabatäer U10880 siehe nabatäisches Alphabet
108B0 108DF Reservieren - -
108E0 108FF Hatrenianer U108E0 siehe Hatrénien-Alphabet  ( fr )
10900 1091F phönizisch U10900 siehe phönizisches Alphabet
10920 1093F Lydian U10920 siehe Lydisches Alphabet
10940 1097F Reservieren - -
10980 1099F Meroitische Hieroglyphen U10980 siehe Meroitisches Skript
109A0 109FF Meroitische Kursive U109A0 siehe Meroitisches Skript
10A00 10A5F Kharochth . U10A00 siehe Alphabet kharoshthi
10A60 10A7F Südarabisch U10A60 siehe Südarabisches Alphabet
10A80 10A9F Nordarabisch U10A80 siehe Altarabischer Norden  (de)
10AA0 10ABF Reservieren - -
10AC0 10AFF Manichäer U10AC0 siehe Manichäisches Alphabet  (de)
10B00 10B3F Avestisch U10B00 siehe Avestisches Alphabet  (de)
10B40 10B5F Parthische Inschriften U10B40 siehe Parthische Inschriften  (de)
10B60 10B7F Pehlevi der Inschriften U10B60 siehe Pehlevi-Skript
10B80 10BAF Pehlevi der Psalter U10B80 siehe Pehlevi-Schrift , Psalter
10BB0 10BFF Reservieren - -
10C00 10C4F Orchon U10C00 siehe Orchon-Alphabet
10C50 10C7F Reservieren - -
10C80 10CFF Alt Ungarisch U10C80 siehe Ungarische Runen
10D00 10E5F Reservieren - -
10E60 10E7F Rumi digitale Symbole U10E60 siehe Figuren von Fez , Fez
10E80 10FDF Reservieren - -
10FE0 10FFF Elymaisch U10FE0 siehe Élymaïque  (de)
11000 1107F Brahmane U11000 siehe Brahmi
11080 110CF Khaithi U11080 siehe Khaithi
110D0 110FF Sora sompeng U110D0 siehe Alphabet sora sompeng  (de)
11100 1114F Chakma U11100 siehe Ojhapath
11150 1117F Mahajan U11150 siehe Mahâjanî  (in)
11180 111DF Charada U11180 siehe Alphasyllabary Sharda
111E0 111FF Singhalesische archaische Zahlen U111E0 siehe Singhalesisch
11200 1124F Khojki U11200 siehe Khojki  (de)
11250 1127F Reservieren - -
11280 112AF Multani U11280 siehe Multani-Alphabet  (de)
112B0 112FF Chudabadi U112B0 siehe Khudabadi schreiben  (en)
11300 1137F Grantha U11300 siehe Grantha
11380 113FF Reservieren - -
11400 1147F Newa U11400 siehe Alphabet Newa  (de)
11480 114DF Tirhuta U11480 siehe Tirhuta
114E0 1157F Reservieren - -
11580 115FF Siddham U11580 siehe Alphasyllabary siddham
11600 1165F Modi U11600 siehe Modi Alphasyllabary
11660 1167F Mongolische Ergänzung U11660 siehe Mongolisch
11680 116CF Takri U11680 siehe Alphabet Takri  (de)
116D0 116FF Reservieren - -
11700 1173F Ahom U11700 siehe Alphasyllabaire âhom
11740 1189F Reservieren - -
118A0 118FF Warang-Stadt U118A0 siehe Warang Citi  (de)
11900 11999 Reservieren - -
119A0 119FF nandinâgarî U119A0 siehe Nandinagari  (de)
11A00 11A4F Quadratischer Zanabazar U11A00 siehe Zanabazar , Mongolisch
11A50 11AAF Soyombo U11A50 siehe Soyombo-Skript
11AB0 11ABF Reservieren - -
11AC0 11AFF Paou chin haou U11AC0 siehe Schreiben von Paou chin haou  (de)
11B00 11BFF Reservieren - -
11C00 11C6F Bhaiksuki U11C00 siehe Alphabet Bhaiksuki  (de)
11C70 11CBF Marken U11C70 siehe Zhang-zhung
11CC0 11CFF Reservieren - -
11D00 11D5F Masaram gondi U11D00 siehe Masaram Gondi  (en) , Gondi
11D60 11FBF Reservieren - -
11FC0 11FFF Tamilische Ergänzung U11FC0 siehe Tamil
12000 123FF Keilschrift U12000 siehe Keilschrift
12400 1247F Satzzeichen und Keilschriftzahlen U12400 siehe Keilschrift
12480 1254F Keilschrift der archaischen Dynastien U12480 siehe Keilschrift
12550 12FFF Reservieren - -
13000 1342F Ägyptische Hieroglyphen U13000 siehe ägyptische Hieroglyphenschrift
13430 1343F Steuerelemente für die Formatierung ägyptischer Hieroglyphen U13430 siehe ägyptische Hieroglyphenschrift
13440 143FF Reserviert
(Teil 1) (Teil 2)
- -
14400 1467F Anatolische Hieroglyphen U14400 siehe anatolische Hieroglyphen
14680 167FF Reserviert
(Teil 1) (Teil 2) (Teil 3)
- -
16800 16A3F Bambus-Ergänzung U16800 siehe Bamoun-Skript
16A40 16A6F Mehr U16A40 siehe Sprache Herr  (de)
16A70 16ACF Reservieren - -
16AD0 16AFF Bassa U16AD0 siehe Alphabet bassa
16B00 16B8F Pahawh hmong U16B00 siehe Pahawh hmong
16B90 16EFF Reservieren - -
16F00 16F9F Miao U16F00 siehe Miao schreiben  (de)
16FA0 16FDF Reservieren - -
16FE0 16FFF Ideografische Symbole und Satzzeichen U16FE0 siehe Ideogram , Tangut Schreiben , Nushu
17000 187FF Tangoute
(Teil 1) (Teil 2)
U17000 siehe Tangoute-Schreiben
18800 18AFF Tangut-Komponenten U18800 siehe Tangoute-Schreiben
18B00 1AFFF Reserviert
(Teil 1) (Teil 2) (Teil 3)
- -
1B000 1B0FF Kana-Ergänzung U1B00 siehe Japanisch , Japanische Schriften , Kana
1B100 1B12F Erweitertes Kana A U1B100 siehe Japanisch , Japanische Schriften , Kana , Hentaigana
1B130 1B16F Erweiterung kleines Kana U1B130 siehe Japanisch , Japanische Schriften , Kana , Hentaigana
1B170 1B2FF Nüshu U1B170 siehe Nüshu
1B300 1BBFF Reservieren - -
1BC00 1BC9F Duplizierte Kurzschrift U1BC00 siehe Stenographie , Émile Duployé
1BCA0 1CFFF Reserviert
(Teil 1) (Teil 2)
- -
1D000 1D0FF Byzantinische Musiksymbole U1D000 siehe Byzantinische Musik
1D100 1D1FF Westliche Musiksymbole U1D100 siehe westliche Musik
1D200 1D24F Altgriechische Musiknotation U1D200 siehe Antike griechische Musik
1D250 1D2FF Reservieren - -
1D300 1D35F Supreme Mystery Classic Symbole Classic U1D300 siehe Tai Xuan Jing  (de)
1D360 1D37F Chinesische Strichmännchen U1D360 siehe Taktzählung
1D380 1D3FF Reservieren - -
1W400 1D7FF Alphanumerische mathematische Symbole U1D400 siehe Mathematisches Symbol , lateinisches Alphabet , arabische Ziffern
1D800 1DAAF Suttons Zeichen schreiben U1D800 siehe Schilder schreiben
1DAB0 1DFFF Reservieren - -
1E000 1E02F Glagolytische Ergänzung U1E000 siehe glagolitisches Alphabet
1E030 1E0FF Reservieren - -
1E100 1E14F Nyiakeng Puachue Hmong U1E800 siehe Nyiakeng puachue hmong  (de)
1E150 1E2DF Reservieren - -
1E2C0 1E2FF Wancho U1E2C0 siehe Wancho
1E300 1E7FF Reservieren - -
1E800 1E8DF Betteln kikakui U1E800 siehe Kikakui
1E8E0 1E8FF Reservieren - -
1E900 1E95F Adlam U1E900 siehe Alphabet adlam
1E960 1ECFF Reservieren - -
1ED00 1ED4F Syaq-Figuren U1ED00
1ED50 1ECFF Reservieren - -
1EE00 1EEFF Arabische mathematische Alphabetsymbole U1EE00 siehe Arabische Mathematik
1EF00 1EFFF Reservieren - -
1F000 1F02F Mahjong-Stücke U1F000 siehe Mah-jong
1F030 1F09F Domino U1F030 siehe Dominos
1F0A0 1F0FF Kartenspielen U1F0A0 siehe Spielkarten
1F100 1F1FF Eingekreiste alphanumerische Ergänzung U1F100 siehe ARIB STD-B24  (de)
1F200 1F2FF Eingekreiste ideografische Ergänzung U1F200 siehe ARIB STD-B24  (de)
1F300 1F5FF Verschiedene Symbole und Piktogramme U1F300 siehe Piktogramm , Emoji
1F600 1F64F Emoticons U1F600 siehe Emoticon , Emoji
1F650 1F67F Zierkassette U1F650 siehe Wingdings
1F680 1F6FF Transport- und kartografische Symbole U1F680 siehe Transport , Kartographie , Emoji
1F700 1F77F Alchemistische Symbole U1F700 siehe Alchemie
1F780 1F7FF Erweiterte geometrische Formen U1F780 siehe Geometrische Form
1F800 1F8FF Pfeile ergänzen C U1F800 siehe Pfeil
1F900 1F9FF Zusätzliche Symbole und Piktogramme U1F900 siehe Piktogramm , Emoticon , Emoji
1FA00 1FA6F Reservieren - -
1FA70 1FAFF Symbole und Piktogramme erweitert-A U1FA70 siehe Piktogramm , Emoji
1FB00 1FFFF Reservieren - -
Ergänzender ideografischer Plan (PIC, 20000 bis 2FFFF)
Codepunkte Offizieller Blockname Finde mehr heraus
Start Ende
20.000 2A6DF CJC Unified Ideograms Supplement B
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 ) ( Teil 6 )
( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 ) ( Teil 11 )
siehe Chinesisch, Japanisch und Koreanisch
2A6E0 2A6FF Reservieren -
2A700 2B73F Ergänzung C zu CJC Unified Ideograms
( Teil 1 ) ( Teil 2 )
siehe Chinesisch, Japanisch und Koreanisch
2B740 2B81F Ergänzung D zu einheitlichen CJC-Ideogrammen siehe Chinesisch, Japanisch und Koreanisch
2B820 2CEAF Ergänzung E zu den einheitlichen CJC-Ideogrammen siehe Chinesisch, Japanisch und Koreanisch
2CEB0 2EBEF Ergänzung F zu den einheitlichen CJC-Ideogrammen siehe Chinesisch, Japanisch und Koreanisch
2EBF0 2F7FF Reservieren -
2F800 2FA1F Ergänzung zu CJC-Kompatibilitäts-Ideogrammen siehe Chinesisch, Japanisch und Koreanisch
2FA20 2FFFF Reservieren -
Komplementäre Pläne reserviert (30.000 bis DFFFF)
Codepunkte Offizieller Blockname Finde mehr heraus
Start Ende
30.000 3FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 3
40.000 4FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 4
50.000 5FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 5
60.000 6FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 6
70.000 7FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 ) ( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 7
80.000 8FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 8
90.000 9FFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 9
A0000 AFFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
10 planen
B0000 BFFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 11
C0000 CFFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Planen Sie 12
D0000 DFFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
Plan 13
Spezialisierter Ergänzungsplan (PCS, E0000 bis EFFFF)
Codepunkte Offizieller Blockname Bemerkungen
Start Ende
E0000 E007F Etiketten
E0080 E00FF Reservieren -
E0100 E01EF Variantenauswahl-Ergänzung
E01F0 EFFFF Reserviert
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
-
Zusatztarife für den privaten Gebrauch (F0000 bis 10FFFF)
Codepunkte Offizieller Blockname Offizielles PDF Bemerkungen
Start Ende
F0000 FFFFF Zusatzzone A für private Nutzung
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
UF0000 Kein offiziell definiertes Merkmal
100.000 10FFFF Zusätzliche Zone B für den privaten Gebrauch
( Teil 1 ) ( Teil 2 ) ( Teil 3 ) ( Teil 4 ) ( Teil 5 )
( Teil 6 ) ( Teil 7 ) ( Teil 8 ) ( Teil 9 ) ( Teil 10 )
( Teil 11 ) ( Teil 12 ) ( Teil 13 ) ( Teil 14 )
( Teil 15 ) ( Teil 16 ) ( Teil 17 )
U100000 Kein offiziell definiertes Merkmal

Private Nutzungsbereiche enthalten nicht die gleichen Augen von einer Schriftart zur anderen und sollten daher für Codierungstexte vermieden werden, die für den Austausch zwischen heterogenen Systemen bestimmt sind. Diese Codepunkte für den privaten Gebrauch sind jedoch gültig und können in jeder automatisierten Verarbeitung verwendet werden, die den Standards Unicode und ISO / IEC 10646 entspricht , auch zwischen verschiedenen Systemen, wenn eine private gegenseitige Vereinbarung über ihre Verwendung besteht.

In Ermangelung einer Vereinbarung zwischen den beiden Parteien können Systeme, die diese Zeichen verwenden, die sie enthaltenden Texte ablehnen, weil die Verarbeitung, der sie unterzogen werden, nicht ordnungsgemäß funktionieren oder Sicherheitsprobleme verursachen könnte; andere Systeme, die diesen Zeichen keine besondere Funktion zuschreiben, müssen sie hingegen als gültig akzeptieren und als integralen Bestandteil der Texte beibehalten, als wären sie grafische Symbole, auch wenn sie nicht wissen, wie sie angezeigt werden sollen sie richtig.

Nicht-Zeichen sind gültige Codepunkte, aber sie werden (und werden nie) standardisierten Zeichen zugewiesen. Ihre Verwendung bei der Kodierung von Texten, die zwischen Systemen übertragen werden (auch wenn sie identisch sind), ist verboten, weil es unmöglich ist, sie mit den den standardisierten universellen Transformationsformen (einschließlich UTF-8, UTF-16, UTF-32) entsprechenden Kodierungen kompatibel zu machen, und andere standardisierte Kodierungen, die mit Unicode und ISO / IEC 10646 kompatibel sind ( BOCU -1, SCSU , verschiedene Versionen des chinesischen Standards GB 18030 ,  etc. ). Einige Systeme erzeugen und verwenden sie jedoch lokal, jedoch für eine streng interne Verarbeitung, die die Implementierung von Textverarbeitungsalgorithmen unter Verwendung der anderen standardisierten Zeichen erleichtern soll.

Unter diesen letzteren Nichtzeichen sind gültige Codepunkte, die für Halbzonen (privat oder nicht) reserviert sind. Diese Codepunkte können nicht einzeln verwendet werden, um ein Zeichen zu codieren. Sie werden nur für die universelle UTF-16-Transformationsform (und die entsprechenden Codierungsschemata) verwendet, um an zwei Codepunkten (jeweils 16 Bit) gültige Codepunkte in einer der 16 komplementären Ebenen darzustellen (bestimmte Kombinationen von Codepunkten entsprechen gültigen Zeichen von diese Pläne, Standard- oder Privatpläne, andere Kombinationen dürfen keinen gültigen Charakter darstellen, da sie Nicht-Charakteren dieser ergänzenden Pläne entsprechen würden und daher in normkonformen Texten verboten sind).

Andere freie Bereiche (die keinem standardisierten benannten Block zugeordnet sind oder Codepunkte freigelassen und in bestehenden benannten Blöcken reserviert sind) sind für die zukünftige Verwendung in zukünftigen Versionen von Unicode und ISO / IEC 10646 reserviert , aber gültig . Jedes System, das mit Texten arbeitet, die diese reservierten Codepunkte enthalten, muss sie ohne Filterung akzeptieren. Unicode definiert Standardeigenschaften für hypothetische entsprechende Zeichen, um die Kompatibilität von Systemen (die dem Unicode-Standard entsprechen) mit zukünftigen konformen Texten, die sie enthalten, zu bewahren. Keine konforme Anwendung sollte ihnen einen besonderen Charakter oder eine besondere Semantik zuweisen (private Bereiche sind für diese Verwendung vorgesehen).

Hinweise und Referenzen

  1. (in) "  Ankündigung des Unicode®-Standards, Version 12.0  " im Unicode-Blog ,5. März 2019
  2. (de) [1] .
  3. (in) "  Usage Statistics of Character Encodings for Websites, January 2017  " auf w3techs.com (Zugriff am 6. Januar 2017 ) .
  4. Unicode 7.0 fügt 250 Emojis einschließlich Mittelfinger hinzu  " , auf nextinpact.com ,16. Juni 2014(Zugriff am 20. Januar 2016 ) .
  5. (in) Unicode 8 : Was und wann  " auf emojipedia.org ,17. Juni 2015(Zugriff am 20. Januar 2016 ) .
  6. (in) „  Unicode® 9.0.0  “ auf http://unicode.org/ (Zugriff am 23. April 2018 ) .
  7. (in) „  Unicode® 10.0.0  “ auf http://unicode.org/ (Zugriff am 23. April 2018 ) .
  8. (in) „  Unicode® 11.0.0  “ auf http://unicode.org/ (Zugriff am 23. April 2018 ) .
  9. (in) „  Unicode® 12.0.0  “ auf http://unicode.org/ (Zugriff am 6. März 2019 ) .
  10. Inc Unicode , "  Ankündigung des Unicode® Standards, Version 13.0  " (Zugriff am 26. Mai 2020 )
  11. (in) Unicode Technical Report # 17: Unicode-Zeichencodierungsmodell .
  12. (in) "  UTF-8, ein Transformationsformat von ISO 10646  ," Request for comments n o  3629,November 2003.
  13. (in) Der Unicode-Standard, Version 5.0 , Kapitel 16  : Besondere Bereiche und Formatzeichen [PDF] - Unicode, Inc., p.  354 .
  14. UTF-8-Sequenzen sollten so kurz wie möglich sein. Diese Einschränkung muss überprüft werden, um bestimmte Sicherheitslücken wie "/../" zu vermeiden - siehe Details im Abschnitt "Nachteile" des UTF-8- Artikels .
  15. (in) "  Code in Apache Xalan 2.7.0 qui können wir Ersatzpaare fehlschlagen  " , Apache Foundation .
  16. http://unicode.org/charts/PDF/U2B820.pdf
  17. http://unicode.org/charts/PDF/U2CEB0.pdf
  18. http://unicode.org/charts/PDF/U2EBF0.pdf
  19. http://unicode.org/charts/PDF/U30000.pdf
  20. http://unicode.org/charts/PDF/U40000.pdf
  21. http://unicode.org/charts/PDF/U50000.pdf
  22. http://unicode.org/charts/PDF/U60000.pdf
  23. http://unicode.org/charts/PDF/U70000.pdf
  24. http://unicode.org/charts/PDF/U80000.pdf
  25. http://unicode.org/charts/PDF/U90000.pdf
  26. http://unicode.org/charts/PDF/UA0000.pdf
  27. http://unicode.org/charts/PDF/UB0000.pdf
  28. http://unicode.org/charts/PDF/UC0000.pdf
  29. http://unicode.org/charts/PDF/UD0000.pdf
  30. http://unicode.org/charts/PDF/UE0080.pdf
  31. http://unicode.org/charts/PDF/UE01F0.pdf

Siehe auch

Verwandte Artikel

Externe Links

Normative Verweisungen Informative Referenzen
  • (fr) Offizielle französische Übersetzung der ISO / IEC 10646- und Unicode-Standards .
  • (fr) Unicode 5.0 in der Praxis , von Patrick Andries, herausgegeben von Dunod (April 2008) - Nachschlagewerk.
  • (de) RFC 1641  : Unicode mit MIME verwenden - experimentell (Juli 1994)
  • (de) RFC 2152  : UTF-7, ein Mail-sicheres Transformationsformat von Unicode - experimentell (Mai 1997); ersetzt RFC 1642 (veraltet)
  • (de) RFC 2482  : Sprachkennzeichnung in Unicode-Klartext - informativ (Januar 1999)
  • (en) RFC 3718  : Eine Zusammenfassung der Unicode-Konsortium-Verfahren, Richtlinien, Stabilität und öffentlichen Zugang - informativ (Februar 2004)
  • (en) RFC 5891  : Internationalized Domain Names in Applications (IDNA): Protokoll - vorgeschlagener Standard; ersetzt RFC 3490 und RFC 3491 (veraltet), aktualisiert RFC 3492 Punycode
  • (in) Unicode - The Movie Alle 109.242 Zeichen von Unicode 6.0 in einem einzigen Film
Tabellen und Daten Benutzerhandbücher Diskussionen und Artikel