Unicode


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, NBSP).

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.

Inhoud

Geschiedenis


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.

Versies


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

Codering


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.

Sorteren


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.

Gebruik


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).

Schriften


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]

Zie ook


Externe links


Zie de categorie Unicode van Wikimedia Commons voor mediabestanden over dit onderwerp.









Categorieën: Tekencodering




Staat van informatie: 28.09.2021 07:37:00 CEST

oorsprong: Wikipedia (Auteurs [Geschiedenis])    Licentie: CC-BY-SA-3.0

Veranderingen: Alle afbeeldingen en de meeste ontwerpelementen die daarmee verband houden, zijn verwijderd. Sommige pictogrammen werden vervangen door FontAwesome-Icons. Sommige sjablonen zijn verwijderd (zoals 'artikel heeft uitbreiding nodig') of toegewezen (zoals 'hatnotes'). CSS-klassen zijn verwijderd of geharmoniseerd.
Specifieke Wikipedia-links die niet naar een artikel of categorie leiden (zoals 'Redlinks', 'links naar de bewerkpagina', 'links naar portals') zijn verwijderd. Elke externe link heeft een extra FontAwesome-Icon. Naast enkele kleine wijzigingen in het ontwerp, werden mediacontainer, kaarten, navigatiedozen, gesproken versies en Geo-microformats verwijderd.

Belangrijke opmerking Omdat de gegeven inhoud op het gegeven moment automatisch van Wikipedia wordt gehaald, was en is een handmatige verificatie niet mogelijk. Daarom garandeert LinkFang.org niet de juistheid en actualiteit van de verkregen inhoud. Als er informatie is die momenteel verkeerd is of een onjuiste weergave heeft, aarzel dan niet om Neem contact op: E-mail.
Zie ook: Afdruk & Privacy policy.