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 gebruiken bij het verwerken van tekst.: kent aan elk teken en symbool in vrijwel elk schriftsysteem een uniek nummer toe, zodat ze naadloos op verschillende platforms en in verschillende landen kunnen worden opgeslagen, verwerkt en gedeeld.

Deze standaard is ontstaan om de beperkingen van oude tekensets te overwinnen (de ASCII-set, codepagina's, EBCDIC, enz.), die kort of niet compatibel met elkaar waren, maar tegenwoordig is het gesynchroniseerd met ISO/IEC 10646, onderhoudt het algoritmen (zoals bidirectionele) en definieert het eigenschappen en normalisatieregels zodat alles coherent werkt.

Wat is Unicode en waarom is het zo belangrijk?

Unicode is een universele en voortdurend evoluerende tekencoderingsstandaard. die elk teken beschrijft met een naam, een code punt en een set eigenschappen (schrift, categorie, directionaliteit, hoofdletters/kleine letters, etc.). Het Unicode Technical Committee (UTC), binnen het Unicode Consortium, zorgt ervoor dat de code synchroon blijft met de ISO/IEC 10646-norm..

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

Karakters, glyphs en codepunten

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

De gebruikelijke notatie voor een code punt is U+XXXX in hexadecimaalIllustratieve voorbeelden van 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 'β' aangehaald met U+0392, maar deze code komt overeen met de hoofdletter 'Β').

De Unicode-coderuimte heeft 1.114.112 mogelijke posities (tot U+10FFFF), zo georganiseerd dat het alle schrijfsystemen en symbolen bestrijkt en classificeert, met tienduizenden effectieve en steeds grotere opdrachten in iedere versie.

Plattegronden, gebieden en blokken

Unicode verdeelt de ruimte in 17 vlakken met elk maximaal 65.536 codepunten.Dankzij deze organisatie kunt u eenvoudig verwante scripts en symbolen groeperen, zodat u snel vindt wat u zoekt.

Meest relevante plannenHet Basic Multilingual Plan (BMP, plan 0) bevat bijna alle moderne schriften en veel symbolen; het Supplementary Multilingual Plan (SMP, plan 1) bevat historische schriften en technische symbolen (bijvoorbeeld muziek- en wiskundige symbolen); het Supplementary Ideographic Plan (SIP, plan 2) bouwt voort op de CJK-ideogrammen; Plan 14 (SSP) bevat speciale labels; en Plannen 15 en 16 zijn voor privégebruik.

Blokken en gebiedenDe plattegronden zijn informeel onderverdeeld in gebieden en formeel in aaneengesloten blokken. De blokken worden gebruikt om karakters te tabelleren en te documenteren, hoewel ze niet altijd overeenkomen met betekenisvolle taalkundige groeperingen.

  Eenvoudige volmacht in Word: alles wat u moet weten om deze te schrijven

CJK-ideogrammen en het Unihan-project

Oost-Aziatische (han) ideogrammen zijn verenigd in Unicode met stilistische variaties per regio, maar met dezelfde abstracte aard. Het wordt beheerd door de Ideographic Rapporteur Group (IRG), een groep ISO/IEC JTC1/SC2/WG2-vertegenwoordigers uit onder andere China, Japan, Korea, Vietnam, Hongkong, Macau, Singapore en de Verenigde Staten.

De Unihan-database Het verzamelt aanvullende informatie (interpretaties, betekenissen, equivalenties) die essentieel zijn voor het beheer van deze ideogrammen in verschillende talen en historische of bedrijfsnormen.

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 voorspelt dat de opname van ideogrammen geen absoluut einde zal hebben en overweegt mechanismen zoals ideografische beschrijvingssequenties om niet-gecodeerde symbolen te representeren door ze te ontbinden in bestaande componenten (met de nodige voorzichtigheid: zonder canonieke ontbinding 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 de software de tekst efficiënt en passend bij de context kan verwerken.

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

UTF-16 maakt gebruik van 16-bits eenheden

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

UTF-32 De lengte ervan is vast: 4 bytes per teken. Het is eenvoudig maar neemt veel ruimte in beslag. Handig als directe tekenindexering belangrijk is en geheugen geen probleem is.

Hoe bits worden verdeeld in UTF-8

Het UTF-8-formaat verdeelt de code puntbits in reeksen van 1 tot 4 bytes. met herkenbare headers, waardoor dubbelzinnigheden worden voorkomen en tekengrenzen gemakkelijker te herkennen zijn.

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 maakt het mogelijk om tekststromen zeer efficiënt te verwerken en is bovendien achterwaarts compatibel 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 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.
  Ada Lovelace: De pionier onthult de geheimen van de computer

Er zijn ook specifieke varianten zoals UTF-16BE/UTF-16LE en UTF-32BE/UTF-32LE (volgens afspraak zonder BOM), en andere historisch compatibele coderingen zoals UTF-7 of UTF-EBCDIC, evenals GB18030 (het Chinese equivalent van UTF-8 met ondersteuning voor zowel vereenvoudigd als traditioneel Chinees).

Normalisatie, compositie en equivalenties

Veel karakters kunnen worden weergegeven als precomposites of als gecombineerde basis+merk-reeksen.Klassieke voorbeelden van het herziene materiaal: de voorgecomponeerde 'Ä' is U+00C4, terwijl de ontbonden vorm 'A' (U+0041) + trema (U+0308) is. De 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 compatibiliteit (vormen die er hetzelfde uitzien, maar met semantische verschillen). Normalisatie zorgt voor betrouwbare tekenreeksvergelijkingen en vermindert duplicaten..

Bidirectioneel algoritme en speciale tekens

Voor schriften die van rechts naar links worden geschreven, zoals Arabisch of Hebreeuws, maakt Unicode gebruik van een bidirectioneel algoritme. (Bidi) gestandaardiseerd en verder ontwikkeld (bijv. revisies in 6.3) zodat gemengde Latijnse en Arabische teksten in de juiste visuele volgorde worden weergegeven.

Codepuntklassen die u moet kennen afhankelijk van het ontvangen materiaal: grafische tekens (letters, tekens, symbolen), opmaaktekens (onzichtbaar maar van invloed op de verwerking: U+2028 regeleinde, U+2029 alinea-einde, U+00A0 harde spatie), overgenomen besturingscodes voor compatibiliteit (bereiken U+0000–U+001F, U+007F, U+0080–U+009F), privégebruik, gereserveerde posities, substituten (U+D800–U+DFFF voor UTF-16) en niet-tekens (U+FFFE, U+FFFF op elk vlak).

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

Unicode is gesynchroniseerd met ISO/IEC 10646 (UCS) en behoudt 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.), en daarnaast ruimtes voor privégebruik gereserveerd voor fabrikanten.

ASCII versus Unicode: ASCII is een 7-bitsset van 128 tekens., genoeg voor basis Engels, maar onvoldoende voor talen met diakritische tekens, ideogrammen of emoji'sUnicode bestrijkt ruim 140.000 tekens en dat aantal groeit nog steeds, met 8/16/32-bits codering in UTF-formaat.

ANSI en codepagina's:'ANSI' verwijst doorgaans naar beperkte en onderling incompatibele 8-bits Windows-codepagina's. Een computer met OEM-Latin II-openingstekst in IBM EBCDIC-Cyrillisch zal onjuiste tekens zien. Unicode lost dit probleem op met een uniek repertoire en verliesvrije conversies tussen de verschillende vormen.

Implementatie op systemen (Windows, Solaris) en conversie

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

Nieuwe applicaties op Windows moeten intern UTF-16 gebruiken en laat de conversie over aan de randen (I/O, protocollen), waardoor corruptie tot een minimum wordt beperkt. Windows biedt echter nog steeds ondersteuning voor codepagina's wanneer dit onvermijdelijk is..

Oracle Solaris 11 ondersteunt volgens de herziene documentatie Unicode 6.0 en ISO/IEC 10646:2011 op systeemniveau, met UTF-8 als standaardformaat in de parametersets. Hierdoor worden problemen met de bytevolgorde vermeden en blijft ASCII op transparante wijze behouden.

Unicode in de praktijk: web, documenten en programmeren

Op het web is het gebruikelijk om content in UTF-8 te serveren en op te slaan. In HTML declareer je ' ' om compatibiliteit te garanderen en gebruikt waar nodig hexadecimale numerieke entiteiten (voorbeeld: de euro '€').

  9 fascinerende feiten over John von Neumann

In Word kunt u Unicode-symbolen invoegen eenvoudig door de cursor te plaatsen, naar Invoegen > Symbool te gaan, of de code te typen en op Alt+X te drukken; dit zal de waarde omzetten in het bijbehorende teken, volgens de gebruikelijke aanbevelingen. Zie ook lijst met Alt-codes om symbolen vanaf het toetsenbord in te voegen.

In programmeertalenIn Python 3 zijn strings nu Unicode; in Java en C# kun je '\uXXXX' escapes gebruiken; in HTML '&#xXXXX;'. Het belangrijkste is dat bewerken, compileren en verzenden dezelfde codering gebruiken om fouten te voorkomen.

Het kopiëren en plakken van symbolen werkt alleen als de volledige tekenreeks in Unicode is.Als onderdelen een andere codering gebruiken, kunnen er vraagtekens, vakjes of vreemde symbolen verschijnen.

Karakterdatabase (UCD), eigenschappen en categorieën

De Unicode Character Database (UCD) publiceert voor elk codepunt de naam, categorie, script, hoofdlettergevoeligheid, richting en andere kenmerken.Deze informatie is van cruciaal belang voor een goede werking van de rendering- en tekstverwerkingsengines.

Dankzij deze eigenschappenkunnen verschillende componenten en algoritmen (zoals sorteren, woordsegmentatie of hoofdlettertransformatie) zich consistent gedragen op dezelfde gegevens.

Versies en uitbreidingen van de standaard: hoogtepunten

Unicode groeit met elke versie, met nieuwe scripts, symbolen en emoji's. Hoogtepunten zijn onder andere versie 1.0 uit 1991 met 7.161 tekens en daaropvolgende uitbreidingen die duizenden nieuwe symbolen, ideogrammen, emoji's en scripts hebben toegevoegd.

Bijvoorbeeld in 2022, versie 15.0 heeft 4.192 extra CJK-tekens en andere elementen toegevoegd, waarmee het totaal op ongeveer 149.186-tekens.

Hulpmiddelen voor het verkennen van de Unicode-tabel

Er zijn gratis hulpprogramma's om personages te zoeken en te analyserenMet Unibook Character Browser, SYMBL en Branah.com kunt u eigenschappen, namen en tekenblokken opvragen, waardoor ontwikkelaars en makers van content snel en eenvoudig de informatie kunnen vinden die ze nodig hebben.

Gebruiksvoorbeelden: adresformulieren, internationalisering en zakendoen

Gebruikers toestaan adressen in hun eigen taal en schrift in te voeren Het helpt fouten te verminderen en de ervaring te verbeteren. Unicode-interoperabiliteit voorkomt ook problemen bij het converteren tussen verschillende systemen, waardoor de tekstintegriteit in de hele digitale keten behouden blijft.

Om deze reden is Unicode het fundamentele element dat garandeert dat de tekst definitief blijft binnen de digitale infrastructuur., van webformulieren tot databasesystemen en gedrukte documenten, ongeacht of u 'ñ', Arabisch, Chinees of emoji's in dezelfde zin gebruikt.

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