Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
Unicode
Unicode is een internationale standaard voor de codering van binaire codes naar grafische tekens en symbolen, vergelijkbaar met de ASCII-standaard. De standaard voorziet alle tekens en symbolen ("karakters") van alle geschreven talen van een nummer. 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 alfabet en Chinese karakters) te ondersteunen. De standaard bevat momenteel 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 symbolen in Unicode hebben alleen een betekenis in druk- of zettechnische zin, zoals: de niet-afbrekende 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 b.v. bij EBCDIC (space, lowercase, uppercase, numeric (=SLUN)) verkregen wordt, omdat de tekens anders gerangschikt zijn.
Geschiedenis
De eerste computers werkten alleen met getallen, bij latere computers ontstond ook de behoefte om bij uitvoer bij getallen aan te geven wat zij voorstelden, weer later werden computers voor tekstverwerking en gegevensopslag ingezet. Hierbij worden tekens intern door getallen gerepresenteerd. Aanvankelijk hadden veel computerfabrikanten hier hun eigen tekenverzameling en -representatie voor. Veel systemen maakten bijvoorbeeld geen onderscheid tussen hoofd- en kleine letters. Later gingen veel fabrikanten over op ASCII, maar ook andere codes bleven in gebruik, b.v. EBCDIC.
ASCII, een 7-bits code, omvat maar een beperkt aantal tekens, alleen het Latijnse alfabet en geen 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, waarbij afzonderlijk moet worden aangegeven welke variant gebruikt werd. Hier is geen standaardmethode voor, 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 is tweemaal uitgebreid (1.0.1 en 1.1) aan de op dat moment actuele ISO-10646. 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, 1.114.112 om precies te zijn (220 + 216), waarvan overigens een aantal niet gebruikt kunnen worden, bijvoorbeeld ten behoeve van de UTF-16-codering.
Versie | Datum | Aantal tekens | ISBN | Opmerking |
---|---|---|---|---|
1.0 | oktober 1991 | 28.302 | ISBN 0-201-56788-1 | |
1.0.1 | juni 1992 | ? | ISBN 0-201-56788-1 | Aantal tekens verwijderd om te voldoen aan de huidige: ISO/IEC 10646-1. |
1.1 | juni 1993 | 34.169 | Nieuwe tekens toegevoegd om te voldoen aan de bijgewerkte: ISO/IEC 10646-1. | |
2.0 | juni 1996 | 38.885 | ISBN 0-201-48345-9 | Eerste versie van Unicode die meer dan 65.536 tekens ondersteunt |
2.1 | mei 1998 | 38.887 | ||
3.0 | september 1999 | 49.194 | ISBN 0-201-61633-5 | |
3.1 | maart 2001 | 94.140 | Zeer veel Chinese karakters toegevoegd | |
3.2 | maart 2001 | 95.156 | ||
4.0.0 | april 2003 | 98.561 | ISBN 0-321-18578-1 | |
4.0.1 | maart 2004 | 99.787 | ||
4.1 | maart 2005 | 101.060 | ||
5.0 | juni 2006 | 101.203 | ISBN 0-321-48091-0 | Tekens toegevoegd voor Indische talen, wiskunde, minderheidstalen en academisch gebruik. |
5.2 | oktober 2009 | 107.296 | ISBN 978-1-936213-00-9 |
Codering
De Unicodestandaard kent aan elk teken een volgnummer toe, dat geschreven wordt als U+xxxx, waarin xxxx de 4- tot 6-cijferige hexadecimale waarde van het volgnummer is. Daarnaast biedt Unicode een aantal mogelijke coderingen hiervoor, dat wil zeggen hoe deze waarden gerepresenteerd kunnen worden:
- UTF-32: Aangezien de grootst mogelijke waarde 21 bits beslaat, ligt het voor de hand om elke waarde als 32-bits getal op te slaan. Een nadeel is dat ASCII-bestanden in Unicode daardoor 4 keer zo groot worden.
- UTF-16: Tekens worden opgeslagen als een of twee 16-bits getallen, afhankelijk van de hun toegekende waarde. UTF-16 is een uitbreiding van UCS-2, de codering van Unicode t/m versie 1.1. De 2048 codes U+D800 t/m U+DFFF kunnen niet in UTF-16 worden gerepresenteerd, en worden daarom niet gebruikt.
- UTF-8: Tekens worden opgeslagen als een tot vier 8-bits getallen, afhankelijk van de hun toegekende waarde. In deze codering blijven ASCII-teksten onveranderd.
Aangezien computers getallen die meerdere bytes beslaan op verschillende wijzen kunnen opslaan, zijn er van UTF-32 en UTF-16 twee varianten mogelijk, nl. big-endian, waarbij het meest significante byte zich op het laagste adres bevindt, en little-endian, met het minst significante byte eerst.
De 256 codes van ISO-8859-1 zijn in Unicode onder dezelfde waarden opgenomen: U+0000 t/m U+00FF. De tweede 128 hiervan kunnen echter, ongeacht de gekozen codering, niet in één byte worden gerepresenteerd. Ook andere codepagina's van ISO 8859 vinden we in Unicode terug, waarbij de oorspronkelijke tekenvolgorde gehandhaafd is.
Ondersteuning van schriften
Op het moment biedt Unicode ondersteuning voor elk van onderstaande schriften:
|
Het aantal schriften wordt nog voortdurend uitgebreid. Ook veel historische schriften worden opgenomen.
Zie ook
Externe links
- Homepage van de Unicode-werkgroep
- DecodeUnicode - Unicode-WIKI, 50.000 gifs
- Links naar Unicode-codepagina's
Zie ook de categorie met mediabestanden in verband met Unicode op Wikimedia Commons.