Wat is Unicode: complete gids, toepassingen en coderingen

Laatste update: 20 augustus 2025
  • Unicode wijst aan elk teken een uniek codepunt toe en synchroniseert zijn repertoire met ISO/IEC 10646.
  • UTF-8, UTF-16 en UTF-32 coderen dezelfde tekens en maken verliesloze conversie mogelijk.
  • Normalisatie-, Bidi- en UCD-eigenschappen zorgen voor consistente vergelijking, ordening en rendering.
  • Door Unicode te gebruiken (bij voorkeur UTF-8 op het web) wordt corruptie voorkomen en internationalisatie vergemakkelijkt.

Algemene illustratie over Unicode

Unicode is de gemeenschappelijke taal die computers spreken bij het verwerken van tekst : het kent een uniek nummer toe aan elk teken en symbool, ongeacht het schrift, zodat het naadloos kan worden opgeslagen, verwerkt en gedeeld tussen platforms en landen.

Deze standaard is ontstaan ​​om de beperkingen van oude tekensets ( de ASCII-set , codepagina's, EBCDIC, enz.) te overkomen, die tekortschoten of incompatibel met elkaar waren. Tegenwoordig is de standaard gesynchroniseerd met ISO/IEC 10646, behoudt algoritmen (zoals het bidirectionele algoritme) en definieert eigenschappen en normalisatieregels zodat alles consistent werkt.

Wat is Unicode en waarom is het zo belangrijk?

Unicode is een universele en voortdurend evoluerende standaard voor tekenencodering die elk teken beschrijft met een naam, een codepunt en een reeks eigenschappen (schrift, categorie, richting, hoofdlettergebruik, enz.). Het Unicode Technical Committee (UTC), onderdeel van het Unicode Consortium, zorgt ervoor dat de standaard synchroon blijft met de ISO/IEC 10646-standaard.

Het doel is universaliteit, uniformiteit en uniciteit : een breed repertoire dat de ondubbelzinnige uitwisseling van meertalige tekst mogelijk maakt, met duidelijke en reproduceerbare regels. Dankzij dit kunnen moderne technologieën (besturingssystemen, browsers, XML, Java, databases) Latijnse en Arabische schriften, CJK-ideogrammen, emoji's en technische of muzikale symbolen binnen hetzelfde document combineren.

Karakters, glyphs en codepunten

In Unicode is een teken een abstracte informatie-eenheid en een codepunt de numerieke identificatie ervan . Een glyph is de visuele vorm (wat je op het scherm ziet), die afhankelijk is van het lettertype . Een enkel teken kan meerdere glyphs hebben en soms vertegenwoordigt een glyph meer dan één teken.

De gebruikelijke notatie voor een codepunt is U+XXXX in hexadecimaal . Illustratieve voorbeelden uit het geanalyseerde materiaal: de kleine letter 'l' is U+006C, de vooraf samengestelde kleine letter 'ü' is U+00FC, de 'é' is U+00E9 en de Griekse bèta: de hoofdletter is U+0392 en de kleine letter U+03B2 (in sommige teksten wordt 'β' vermeld met U+0392, maar die code komt overeen met de hoofdletter 'Β').

De Unicode-coderuimte heeft 1.114.112 mogelijke posities (tot U+10FFFF) , georganiseerd om alle schrijfsystemen en symbolen te omvatten en te classificeren, met tienduizenden effectieve en groeiende toewijzingen in elke versie.

Plattegronden, gebieden en blokken

Unicode verdeelt zijn tekenruimte in 17 vlakken van elk maximaal 65.536 codepunten . Deze indeling maakt het gemakkelijk om verwante schriften en symbolen te groeperen en snel te vinden wat je zoekt.

De belangrijkste vlakken zijn : het Basis Meertalig Vlak (BMP, vlak 0) dat bijna alle moderne alfabetten en veel symbolen samenbrengt; het Aanvullend Meertalig Vlak (SMP, vlak 1) dat historische schriften en technische symbolen (bijv. muzikale en wiskundige symbolen) bevat; het Aanvullend Ideografisch Vlak (SIP, vlak 2) dat de CJK-ideogrammen uitbreidt; vlak 14 (SSP) dat speciale labels bevat; en de vlakken 15 en 16 zijn voor privégebruik.

Blokken en gebieden : de kaarten zijn informeel onderverdeeld in gebieden en formeel in aaneengesloten blokken. Blokken worden gebruikt om personages te registreren en te documenteren, hoewel ze niet altijd overeenkomen met zinvolle taalkundige groeperingen.

  Complete gids voor het kopen van een computer op afbetaling in Spanje

CJK-ideogrammen en het Unihan-project

Oost-Aziatische (Han) ideogrammen zijn in Unicode verenigd met stilistische variaties per regio , maar verwijzen allemaal naar hetzelfde abstracte teken. Het beheer ervan wordt uitgevoerd door de Ideographic Rapporteur Group (IRG), een ISO/IEC JTC1/SC2/WG2-groep met vertegenwoordiging uit China, Japan, Korea, Vietnam, Hongkong, Macau, Singapore, de VS en andere landen.

De Unihan-database bundelt aanvullende informatie (lezingen, betekenissen, equivalenten) die essentieel is voor het gebruik van deze ideogrammen in verschillende talen en volgens historische of bedrijfsstandaarden.

Belangrijkste CJK-blokken en -extensies :

  • CJK Unified Ideographs (BMP, U+4E00–U+9FFF): 20.992 veelgebruikte tekens.
  • Toestel A (BMP, U+3400–U+4DBF): 6.592 minder frequente ideogrammen.
  • B-H-extensies: in SMP/SIP/TIP lopen ze op tot tienduizenden meer (B: U+20000–U+2A6DF, 42.720; C: U+2A700–U+2B73F, 4.154; D: U+2B740–U+2B81F, 222; E: U+2B820–U+2CEAF, 5.762; F: U+2CEB0–U+2EBEF, 7.473; G: U+30000–U+3134F, 4.939;
  • Andere gerelateerde CJK-blokken: Kangxi-radicalen (U+2F00–U+2FDF), CJK-symbolen en leestekens (U+3000–U+303F), Compatibiliteit en compatibiliteitsformaten, Supplement voor compatibiliteitsideogrammen, enz.

Unicode verwacht dat de integratie van ideogrammen geen absoluut einde zal kennen en overweegt mechanismen zoals ideografische beschrijvingsreeksen om niet-gecodeerde symbolen weer te geven door ze op te splitsen in bestaande componenten (met de kanttekening: zonder canonieke ontleding of garanties bij bewerkingen zoals zoeken of sorteren).

Coderingsformulieren: UTF-8, UTF-16 en UTF-32

Unicode definieert transformatievormen (UTF) die codepunten omzetten in opslageenheden, zodat software tekst efficiënt kan verwerken op basis van de context.

UTF-8 is een bytegeoriënteerd coderingsformaat met variabele lengte dat ASCII-compatibel is in het bereik U+0000–U+007F per byte. De huidige standaard gebruikt 1 tot 4 bytes per teken; sommige oudere teksten vermelden 1–6, maar in de moderne Unicode is dit 1–4. Het is het dominante formaat op het web.

UTF-16 gebruikt 16-bits eenheden.

(één of twee code-eenheden per teken) : de meeste BMP-tekens passen in één eenheid; aanvullende tekens gebruiken surrogaatparen in het bereik U+D800–U+DFFF.

UTF-32 heeft een vaste lengte: 4 bytes per teken, is eenvoudig maar neemt veel ruimte in beslag; handig wanneer directe tekenindexering belangrijk is en geheugen geen probleem vormt.

Hoe bits worden verdeeld in UTF-8

Het UTF-8-formaat verdeelt de codepuntbits in reeksen van 1 tot 4 bytes met herkenbare kopteksten, waardoor dubbelzinnigheden worden voorkomen en de detectie van tekengrenzen wordt vergemakkelijkt.

Unicode-bereik Bitpatroon Bytes
U+0000..U+007F 0xxxxxx 1
U+0080..U+07FF 110jjjjj 10xxxxxx 2
U+0800..U+FFFF 1110zzzz 10jjjjjj 10xxxxxx 3
U+010000..U+10FFFF 11110uuu 10uuuzzzz 10yyyyyy 10xxxxxx 4

Een belangrijk voordeel van UTF-8 is dat het problemen met de bytevolgorde (endianness) vermijdt en een zeer efficiënte verwerking van tekststromen mogelijk maakt, naast de achterwaartse compatibiliteit met ASCII.

Coderingsschema's, endianness en BOM

Naast UTF-vormen beschrijft Unicode serialisatieschema's die bepalen hoe bytes worden verzonden tussen systemen met verschillende endianness en hoe aspecten zoals de bytevolgorde worden gesignaleerd.

  • UTF-8: endianness is niet van toepassing. Het kan worden overgedragen Byte-volgordemarkering (BOM) als hint, hoewel dit niet standaard vereist of aanbevolen is.
  • UTF-16: BE/LE (big/little-endian) varianten en optionele BOM (indien ontbrekend en niet gedefinieerd door het protocol, wordt big-endian aangenomen).
  • UTF-32: BE/LE-varianten met analoge regels; BOM toegestaan als ordermerk.
  Voorbeelden van thermodynamica in het dagelijks leven

Er bestaan ​​ook specifieke varianten zoals UTF-16BE/UTF-16LE en UTF-32BE/UTF-32LE (zonder BOM volgens conventie), en andere historische compatibiliteitscoderingen zoals UTF-7 of UTF-EBCDIC, naast GB18030 (het Chinese equivalent van UTF-8 met ondersteuning voor vereenvoudigd en traditioneel Chinees).

Normalisatie, compositie en equivalenties

Veel karakters kunnen worden weergegeven als voorgecomponeerde karakters of als sequenties van basis- en combinatietekens . Klassieke voorbeelden uit het herziene materiaal: de voorgecomponeerde 'Ä' is U+00C4, terwijl de ontlede vorm 'A' (U+0041) + umlaut (U+0308) is. Het Vietnamese 'ỗ' kan worden weergegeven als 'o' (U+006F) + circumflex (U+0302) + tilde (U+0303).

Unicode definieert gestandaardiseerde vormen en twee soorten equivalentie : canoniek (dezelfde essentiële inhoud) en compatibel (vormen die er hetzelfde uit kunnen zien, maar semantische verschillen hebben). Standaardisatie zorgt voor betrouwbare tekenreeksvergelijkingen en vermindert duplicatie.

Bidirectioneel algoritme en speciale tekens

Voor schriften die van rechts naar links worden gelezen, zoals Arabisch of Hebreeuws, gebruikt Unicode een gestandaardiseerd en voortdurend evoluerend bidirectioneel algoritme (Bidi) (bijv. herzieningen in 6.3), zodat gemengde teksten met Latijn en Arabisch in de juiste visuele volgorde worden weergegeven.

Codepuntencategorieën die bekend moeten zijn op basis van het ontvangen materiaal: grafische tekens (letters, tekens, symbolen), opmaak (onzichtbare tekens die de verwerking beïnvloeden: U+2028 regeleinde, U+2029 alinea-einde, U+00A0 harde spatie), overgenomen controlecodes voor compatibiliteit (bereiken U+0000–U+001F, U+007F, U+0080–U+009F), eigen gebruik, gereserveerde posities, vervangingen (U+D800–U+DFFF voor UTF-16) en niet-tekens (U+FFFE, U+FFFF in elk vlak).

Unicode, ISO/IEC 10646 en andere normen (ASCII, ANSI, codepagina's)

Unicode is gesynchroniseerd met ISO/IEC 10646 (UCS) en behoudt de koppelingen naar eerdere standaarden (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643, enz.), naast het reserveren van ruimte voor privégebruik door fabrikanten.

ASCII versus Unicode : ASCII is een 7-bits tekenset met 128 tekens , voldoende voor basis Engels, maar onvoldoende voor talen met diakritische tekens, ideogrammen of emoji's . Unicode omvat meer dan 140.000 tekens en blijft groeien, met 8/16/32-bits codering volgens het UTF-12-formaat.

ANSI en codepagina's : 'ANSI' verwijst meestal naar beperkte en onderling incompatibele 8-bits Windows-codepagina's. Een computer die OEM-Latin II gebruikt en tekst in IBM EBCDIC-Cyrillisch opent, zal onjuiste tekens zien. Unicode lost dit probleem op met één enkele tekenset en verliesvrije conversies tussen de eigen varianten.

Implementatie op systemen (Windows, Solaris) en conversie

Windows gebruikt intern UTF-16 voor zijn moderne API's en biedt functies zoals MultiByteToWideChar en WideCharToMultiByte voor het converteren tussen Unicode en codepagina's (SBCS/DBCS/MBCS). Als u gedwongen bent om naar een codepagina te converteren, kan er gegevensverlies optreden als deze niet alle tekens kan weergeven.

Nieuwe applicaties op Windows zouden intern UTF-16 moeten gebruiken en de conversie overlaten aan de randen (I/O, protocollen), om corruptie te minimaliseren. Desondanks behoudt Windows compatibiliteit met codepagina's wanneer dit onvermijdelijk is.

Volgens de herziene documentatie ondersteunt Oracle Solaris 11 Unicode 6.0 en ISO/IEC 10646:2011 op systeemniveau, waarbij UTF-8 als standaardformaat in de parameterinstellingen wordt gebruikt. Dit voorkomt problemen met de bytevolgorde en behoudt op transparante wijze ASCII.

Unicode in de praktijk: web, documenten en programmeren

Op het web is het gebruikelijk om content in UTF-8 weer te geven en op te slaan . Declareer in HTML '<meta charset="UTF-8">' om compatibiliteit te garanderen en gebruik hexadecimale numerieke entiteiten waar nodig (bijvoorbeeld de euro '&x20AC;').

  Complete stapsgewijze handleiding voor het assembleren van een computer

In Word kunt u eenvoudig Unicode-symbolen invoegen door de cursor te plaatsen en naar Invoegen > Symbool te gaan, of door de code te typen en op Alt+X te drukken; hiermee wordt de waarde volgens de standaardprocedures naar het bijbehorende teken geconverteerd. Zie ook de lijst met Alt-codes voor het invoegen van symbolen via het toetsenbord.

In programmeertalen : in Python 3 zijn strings al Unicode; in Java en C# kun je escape-tekens gebruiken zoals '\uXXXX'; in HTML '&#xXXXX;'. Het belangrijkste is dat bij het bewerken, compileren en verzenden dezelfde codering wordt gebruikt om fouten te voorkomen.

Het kopiëren en plakken van symbolen werkt als de hele tekenreeks in Unicode is . Als delen ervan een andere codering gebruiken, kunnen er vraagtekens, vierkantjes of andere vreemde symbolen verschijnen.

Karakterdatabase (UCD), eigenschappen en categorieën

De Unicode Character Database (UCD) publiceert voor elk codepunt de naam, categorie, schrift, hoofdlettergevoeligheid, leesrichting en andere kenmerken . Deze informatie is essentieel voor rendering-engines en tekstverwerking om correct te functioneren.

Dankzij deze eigenschappen kunnen verschillende componenten en algoritmen (zoals sorteren, woordsegmentatie of hoofdletter/kleinletterconversie) consistent werken met dezelfde gegevens.

Versies en uitbreidingen van de standaard: hoogtepunten

Unicode groeit met elke versie en bevat nieuwe schriften, symbolen en emoji's. Belangrijke mijlpalen zijn onder andere versie 1.0 in 1991 met 7.161 tekens, en de daaropvolgende uitbreidingen die duizenden nieuwe symbolen, ideogrammen, emoji's en schriften hebben toegevoegd.

In 2022 werden bijvoorbeeld in versie 15.0 4.192 extra CJK-ideogrammen en andere elementen toegevoegd, waardoor het totaal aantal tekens op ongeveer 149.186 kwam.

Hulpmiddelen voor het verkennen van de Unicode-tabel

Er zijn gratis hulpprogramma's voor het zoeken en analyseren van personages : Unibook Character Browser, SYMBL en Branah.com stellen je in staat om eigenschappen, namen en personageblokken op te vragen, waardoor het voor ontwikkelaars en contentmakers gemakkelijker wordt om snel de informatie te vinden die ze nodig hebben.

Gebruiksvoorbeelden: adresformulieren, internationalisering en zakendoen

Door gebruikers de mogelijkheid te bieden adressen in hun eigen taal en schrift in te voeren, worden fouten verminderd en de gebruikerservaring verbeterd. Bovendien voorkomt Unicode-compatibiliteit conversieproblemen tussen verschillende systemen, waardoor de tekstintegriteit in de gehele digitale keten behouden blijft.

Om deze reden is Unicode het fundamentele element dat ervoor zorgt dat de tekst consistent blijft in de gehele digitale infrastructuur , van webformulieren tot databasesystemen en gedrukte documenten, ongeacht of je 'ñ', Arabisch, Chinees of emoji's in dezelfde zin gebruikt.

Binaire nummering
Gerelateerd artikel:
Binaire nummering: de geheime taal van computers