Loading AI tools
internationale standaard voor de definitie van alle tekst tekens met een digitale code Van Wikipedia, de vrije encyclopedie
Unicode is een internationale standaard (nauw samenhangend met ISO-10646) voor de codering van grafische tekens en symbolen in binaire codes, vergelijkbaar met de ASCII-standaard. De standaard voorziet alle tekens van alle geschreven talen van een naam (in de standaard in hoofdletters geschreven) en een nummer (vaak hexadecimaal geschreven, voorafgegaan door U+). Er is bijvoorbeeld het teken LATIN CAPITAL LETTER A met nummer U+0041 (65), los van de lettertypes waarin het weergegeven kan worden. De grafische weergave per lettertype behoort niet tot de standaard.
De standaard wordt onderhouden door het Unicode Consortium. In tegenstelling tot ASCII (alleen Engels) of Latin-1 (alleen West-Europese talen) heeft Unicode als doel alle gebruikte schriften (zoals het Griekse schrift en Chinese karakters) te ondersteunen. De standaard bevat ruim 100.000 gestandaardiseerde tekens en ongeveer 900.000 voor toekomstig gebruik gereserveerde codes. De Unicode standaard schrijft niets voor over de visuele representatie van een karakter.
Unicode stelt geen beperkingen aan het aantal talen dat in één enkel document gebruikt kan worden. Naast letters en cijfers bevat Unicode ook veel symbolen, zoals: kruisen, wiskundige tekens, muntsymbolen enzovoort. Unicode bevat geen symbolen die niet in een schrift worden gebruikt, zoals verkeersborden. Enkele "tekens" in Unicode zijn zelf geen grafische tekens, maar hebben betekenis voor de wijze waarop de zichtbare tekens geplaatst worden, zoals carriage return, line feed, spatie en de niet-afbrekende spatie (harde spatie ofwel NBSP, wat staat voor het Engelse non-breaking space).
Een neveneffect bij omzetting van gegevens die anders gecodeerd waren, is dat bij sorteren op numerieke volgorde een ander resultaat (space, numeric, uppercase, lowercase (SNUL)) dan bijvoorbeeld bij EBCDIC (space, lowercase, uppercase, numeric (=SLUN)) verkregen wordt, omdat de tekens anders gerangschikt zijn.
Bij de eerste computers waren alle teksten (programma's en in- en uitvoer) in hoofdletters, met als verdere tekens cijfers, leestekens en dergelijke, zie bijvoorbeeld GBCD. Later werden kleine letters toegevoegd, zie bijvoorbeeld ASCII. Deze 7-bits code (8-bits zijn samen 1 byte) bevat alleen de Latijnse letters zonder diakritische tekens. Het lag daarom voor de hand ASCII uit te breiden tot extended ASCII met een achtste bit, maar er was niet genoeg ruimte voor alle tekens in alle talen met het Latijnse schrift. Daarom kregen veel talen hun eigen variant van extended ASCII en er was ook EBCDIC. Er is geen standaardmethode om aan te geven welke variant gebruikt wordt, zo gebeurt dit in HTML anders dan in e-mail, en in platte tekst kan het al helemaal niet, wat veel spraakverwarring oplevert.
Voor veel schriften, zoals het Chinese, Arabische en Japanse schrift, zijn 256 tekens niet voldoende. Voor deze uitgebreidere tekenverzamelingen worden traditioneel al andere coderingen gebruikt, die ruimte voor meer tekens bevatten.
Zelfs met al deze verschillende coderingen voor de verschillende talen was het nog niet mogelijk om over een vreemde taal te schrijven. Wanneer men in een Chinese tekst over het Arabisch wilde schrijven, kon men dat niet in de standaard-Chinese codering: de Arabische letters zijn daarin namelijk niet opgenomen. Unicode en de daarvoor beschikbare coderingen bieden voor al dit soort problemen uitkomst.
De Unicodestandaard is ontstaan op initiatief van een aantal organisaties die orde wilden scheppen in de chaos van tekencoderingen. In 1991 lanceerden zij hun eerste standaard: Unicode 1.0.
Unicode 1.1 had ruimte voor 65.536 (= 216) tekens. Dit aantal bleek echter te weinig om alle schriften van de wereld te kunnen ondersteunen. Zo bestaat alleen het Chinese schrift al uit zo'n 25.000 tekens.
In Unicode 2.0 werd het aantal codes uitgebreid naar ruim een miljoen, zie ook onder.
Versie | Datum | Aantal tekens | ISBN | Opmerking |
---|---|---|---|---|
1.0 | oktober 1991 | 7.161 | 0-201-56788-1 | Eerste versie met Arabisch, Armeens, Bengaals, Bopomofo, Cyrillisch, Devanagari, Georgisch, Grieks met Koptisch, Gujarati, Gurmukhi, Hangul, Hebreeuws, Hiragana, Kannada, Katakana, Laotiaans, Latijns, Malayalam, Odia, Tamil, Telugu, Thais en Tibetaans. |
1.0.1 | juni 1992 | 28.359 | 0-201-56788-1 | Aantal tekens toegevoegd om te voldoen aan ISO/IEC 10646-1. Dit zijn de "CJK"-tekens voor de Chinese, Japanse en Koreaanse schriften. |
1.1 | juni 1993 | 34.233 | Nieuwe tekens toegevoegd om te voldoen aan de bijgewerkte ISO/IEC 10646-1. Dit houdt meer Hangul-tekens in. | |
2.0 | juli 1996 | 38.950 | 0-201-48345-9 | Eerste versie van Unicode die meer dan 65.536 tekens ondersteunt. De Hangul-tekens verwijderd en een grotere reeks opnieuw toegevoegd op een andere locatie. |
2.1 | mei 1998 | 38.952 | Euroteken toegevoegd | |
3.0 | september 1999 | 49.259 | 0-201-61633-5 | O.a. Cherokee, Khmer, Mongools, Birmees, Ogham, ... |
3.1 | maart 2001 | 94.205 | Zeer veel Chinese (CJK) karakters toegevoegd | |
3.2 | maart 2002 | 95.221 | Enkele Filipijnse schriften toegevoegd (onder andere Baybayin) | |
4.0 | april 2003 | 96.447 | 0-321-18578-1 | Hexagram-symbolen, Lineair B, ... |
4.1 | maart 2005 | 97.720 | O.a. Tifinagh toegevoegd | |
5.0 | juli 2006 | 99.089 | 0-321-48091-0 | Balinees, Spijkerschrift, N'Ko, ... toegevoegd |
5.1 | april 2008 | 100.713 | O.a. Soendanees, Saurashtra, ... en ook tekens voor Mahjong en Domino en de Schijf van Phaistos | |
5.2 | oktober 2009 | 107.296 | 978-1-936213-00-9 | O.a. Avestisch, Bamoun, ... |
6.0 | oktober 2010 | 109.242 | 978-1936213-01-6 | 2088 nieuwe karakters, van onder andere Batak, Brahmi, Mandaïsch en een aantal symbolen en emoticons |
6.1 | januari 2012 | 110.181 | onder andere Chakma, Sharada, ... toegevoegd | |
6.2 | september 2012 | 110.182 | ISO/IEC 10646:2012 + Het Turkse lira-teken toegevoegd | |
6.3 | september 2013 | 110.187 | 6 nieuwe tekens | |
7.0 | juni 2014 | 113.021 | Bassa, Kaukasisch Albanees, Duployaans, Elbasan, Grantha, Khojki, Khudabadi, Lineair A, Mahajani, Manichees, Mende Kikakui, Modi, Mro, Nabatees, Oudnoordarabisch, Oud-Permisch, Pahawh Hmong, Palmyreens, Pau Cin Hau, Psalter Pahlavi, Siddhaṃ, Tirhuta, Warang Citi, Dingbats. | |
8.0 | juni 2015 | 120.737 | o.a. Ahom, Anatolische hiërogliefen, Hatran, Multani, Oudhongaars, SignWriting | |
9.0 | juni 2016 | 128.237 | o.a. Adlam, Bhaiksuki, Marchen, Newa, Osage, Tangut | |
10.0 | juni 2017 | 136.755 | o.a. Masaram Gondi, Nüshu, Soyombo, Hentaigana, Bitcoin | |
11.0 | juni 2018 | 137.374 | o.a. Dogri, Hanifi Rohingya, Copyleft[1] | |
12.0 | maart 2019 | 137.993 | o.a. Laotiaans schrift, uitbreidingen Tamil, Hiragana en Katakana | |
13.0 | maart 2020 | 143.924 | o.a. Jezidi, Chorasmisch, Divehi Akuru, Kitan; 55 nieuwe emoji | |
14.0 | september 2021 | 144.762 | ||
15.0 | september 2022 | 149.251 | ||
15.1 | september 2023 | 149.878 | ||
16.0 | september 2024 | 155.063 |
De Unicodestandaard kent aan elk teken een nummer toe, codepunt genoemd, dat geschreven wordt als U+xxxx, waarin de x'en de hexadecimale cijfers van het codepunt zijn (minimaal vier, zo nodig met voorloopnullen, maximaal zes). De codepunten die gekoppeld zijn of kunnen worden aan een teken (de zogenaamde Unicode scalaire waarden) lopen van U+0000 (0) tot en met U+D7FF (55.295) en van U+E000 (57.344) tot en met U+10FFFF (1.114.111). Dat zijn 55.296 + 8.192 = 63.488 (0xF800) tekens met een codepunt tot en met twee bytes, plus 1.048.576 (0x100000) andere, in totaal 1.112.064 (0x10F800). De onderbreking bestaat uit 2048 (0x800) codepunten die ten behoeve van gunstige eigenschappen van de UTF-16-codering niet gebruikt worden; ze worden surrogaatcodepunten genoemd.
Unicode biedt verschillende coderingsvormen (encoding forms) om de scalaire waarden te representeren, onder andere:
Codegebied hexadecimaal |
UTF-32 binair |
UTF-16 binair |
UTF-8 binair |
Opmerkingen |
---|---|---|---|---|
U+0000..U+007F (128 = 0x80 ASCII-equivalenten) |
00000000 00000000 00000000 0aaaaaaa |
00000000 0aaaaaaa | 0aaaaaaa | |
U+0080..U+07FF (1.920 = 0x780 scalaire waarden) |
00000000 00000000 00000bbb aaaaaaaa |
00000bbb aaaaaaaa | 110bbbaa 10aaaaaa | |
U+0800..U+D7FF en U+E000..U+FFFF (61.440 = 0xF000 scalaire waarden, de resterende in het Basic Multilingual Plane) |
00000000 00000000 bbbbbbbb aaaaaaaa |
bbbbbbbb aaaaaaaa | 1110bbbb 10bbbbaa 10aaaaaa | |
U+010000..U+10FFFF (1.048.576 = 0x100000 supplementaire codepunten) |
00000000 000ccccc bbbbbbbb aaaaaaaa |
110110dd ddbbbbbb 110111bb aaaaaaaa |
11110ccc 10ccbbbb 10bbbbaa 10aaaaaa | dddd = ccccc − 1 |
Aangezien computers de data in een code-eenheid die meerdere bytes beslaat, op verschillende wijzen kunnen opslaan, zijn er van UTF-32 en UTF-16 twee varianten mogelijk, namelijk big-endian, waarbij de meest significante byte zich op het laagste adres bevindt, en little-endian, met de minst significante byte eerst.
De 256 tekens van ISO-8859-1 zijn in Unicode onder dezelfde codes opgenomen: U+0000 t/m U+00FF. De tweede 128 hiervan worden echter in Unicode in geen van de drie coderingsvormen in één byte gerepresenteerd. Ook andere codepagina's van ISO 8859 vindt men in Unicode terug, waarbij de oorspronkelijke tekenvolgorde gehandhaafd is.
Het sorteren van tekens op basis van de scalaire waarde komt bij UTF-32 en UTF-8 overeen met het sorteren op de daarbij behorende (big-endian) bytereeksen (in de zin dat 0x01 0x00 vóór 0x02 komt omdat 0x01 vóór 0x02 komt). Dit geldt voor UTF-16 niet wanneer er tekens van zowel het Basic Multilingual Plane als van een ander plane vergeleken worden.
In HTML- en XML-documenten kunnen Unicode-tekens die niet worden ondersteund in de gebruikte karaktercodering, worden ingevoegd via karakter-entiteitreferenties. Zo wordt de hoofdletter A weergegeven door A (decimaal) of A (hexadecimaal).
In september 2020 voorziet Unicode in tekens voor 154 schriften, onder andere de onderstaande:
|
Het aantal schriften wordt nog voortdurend uitgebreid. Ook veel historische schriften worden opgenomen. De volledige lijst kan worden geraadpleegd op de Unicode-website.[2]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.