ASCII en Unicode zijn beide standaarden die verwijzen naar de digitale weergave van tekst, met name tekens waaruit tekst bestaat. De twee standaarden zijn echter significant verschillend, met veel eigenschappen die hun respectievelijke volgorde van creatie weerspiegelen.

Amerika versus het heelal

De American Standard Code for Information Interchange (ASCII) is, niet verrassend, geschikt voor een Amerikaans publiek en schrijft in het Engelse alfabet. Het behandelt letters zonder accenten, zoals A-Z en a-z, plus een klein aantal leestekens en besturingstekens.

In het bijzonder is er geen manier om leenwoorden weer te geven die zijn overgenomen uit andere talen, zoals cafe in ASCII, zonder ze te verengelsen door tekens met accenten te vervangen (bijv. cafe). Gelokaliseerde ASCII-extensies werden ontwikkeld om aan de behoeften van verschillende talen te voldoen, maar deze inspanningen maakten interoperabiliteit lastig en vergrootten duidelijk de mogelijkheden van ASCII.

De Universal Coded Character Set (Unicode) daarentegen bevindt zich aan de andere kant van de ambitieschaal. Unicode probeert zoveel mogelijk schrijfsystemen ter wereld te bedienen, voor zover het oude talen en ieders favoriete set expressieve symbolen, emoji, omvat.

instagram viewer

Tekenset of tekencodering?

In eenvoudige bewoordingen is een karakterset een selectie van tekens (bijvoorbeeld A-Z) terwijl een teken codering is een afbeelding tussen een tekenset en een waarde die digitaal kan worden weergegeven (bijv. A = 1, B = 2).

De ASCII-standaard is in feite beide: het definieert de set tekens die het vertegenwoordigt en een methode om elk teken aan een numerieke waarde toe te wijzen.

Het woord Unicode daarentegen wordt in verschillende contexten gebruikt om verschillende dingen te betekenen. Je kunt het zien als een allesomvattende term, zoals ASCII, om te verwijzen naar een karakterset en een aantal coderingen. Maar omdat er verschillende coderingen zijn, wordt de term Unicode vaak gebruikt om te verwijzen naar de algehele set tekens, in plaats van hoe ze in kaart zijn gebracht.

Grootte

Vanwege zijn omvang vertegenwoordigt Unicode veel meer tekens dan ASCII. Standaard ASCII gebruikt een 7-bits bereik om 128 verschillende te coderen karakters. Unicode daarentegen is zo groot dat we verschillende terminologie moeten gebruiken om erover te praten!

Unicode is geschikt voor 1.111.998 adresseerbare codepunten. Een codepunt is ongeveer analoog aan een ruimte die is gereserveerd voor een personage, maar de situatie is een stuk gecompliceerder dan wanneer je je in de details begint te verdiepen!

Een meer bruikbare vergelijking is hoeveel scripts (of schrijfsystemen) momenteel worden ondersteund. Natuurlijk behandelt ASCII alleen het Engelse alfabet, in wezen het Latijnse of Romeinse schrift. De in 2020 geproduceerde versie van Unicode gaat veel verder: het bevat ondersteuning voor in totaal 154 scripts.

Opslag

Het 7-bits bereik van ASCII betekent dat elk teken wordt opgeslagen in een enkele 8-bits byte; het reservebit is ongebruikt in standaard ASCII. Dit maakt het berekenen van de grootte triviaal: de lengte van de tekst, in tekens, is de grootte van het bestand in bytes.

U kunt dit bevestigen met de volgende reeks bash-opdrachten. Eerst maken we een bestand met 12 letters tekst:

$ echo -n 'Hallo wereld'> foo

Om te controleren of de tekst in de ASCII-codering staat, kunnen we de het dossier opdracht:

$ bestand foo
foo: ASCII-tekst, zonder regelafsluiters

Om het exacte aantal bytes te krijgen dat het bestand in beslag neemt, gebruiken we tenslotte de stat opdracht:

$ stat -f% z foo
12

Omdat de Unicode-standaard een veel groter aantal tekens behandelt, neemt een Unicode-bestand natuurlijk meer opslagruimte in beslag. Hoeveel hangt af van de codering.

Het herhalen van dezelfde reeks opdrachten van vroeger, met een teken dat niet kan worden weergegeven in ASCII, geeft het volgende:

$ echo -n '€'> foo
$ bestand foo
foo: UTF-8 Unicode-tekst, zonder regelafsluiters
$ stat -f% z foo
3

Dat enkele teken beslaat 3 bytes in een Unicode-bestand. Merk op dat bash automatisch een UTF-8-bestand heeft gemaakt, aangezien een ASCII-bestand het gekozen teken (€) niet kan opslaan. UTF-8 is verreweg de meest voorkomende tekencodering voor Unicode; UTF-16 en UTF-32 zijn twee alternatieve coderingen, maar ze worden veel minder gebruikt.

UTF-8 is een codering met variabele breedte, wat betekent dat het verschillende hoeveelheden opslagruimte gebruikt voor verschillende codepunten. Elk codepunt zal tussen één en vier bytes innemen, met de bedoeling dat meer algemene tekens minder ruimte nodig hebben, wat een soort ingebouwde compressie oplevert. Het nadeel is dat het bepalen van de lengte- of grootte-eisen van een bepaald stuk tekst veel gecompliceerder wordt.

ASCII is Unicode, maar Unicode is geen ASCII

Voor achterwaartse compatibiliteit vertegenwoordigen de eerste 128 Unicode-codepunten de equivalente ASCII-tekens. Omdat UTF-8 elk van deze tekens met een enkele byte codeert, is elke ASCII-tekst ook een UTF-8-tekst. Unicode is een superset van ASCII.

Zoals hierboven weergegeven, kunnen veel Unicode-bestanden echter niet in een ASCII-context worden gebruikt. Elk teken dat buiten het bereik valt, wordt op een onverwachte manier weergegeven, vaak met gesubstitueerde tekens die totaal verschillen van de bedoelde tekens.

Modern gebruik

Voor de meeste doeleinden wordt ASCII grotendeels als een legacy-standaard beschouwd. Zelfs in situaties die alleen het Latijnse schrift ondersteunen - waar volledige ondersteuning is voor de complexiteit van Unicode overbodig bijvoorbeeld - het is meestal handiger om UTF-8 te gebruiken en te profiteren van de ASCII compatibiliteit.

In het bijzonder moeten webpagina's worden opgeslagen en verzonden met UTF-8, de standaardinstelling voor HTML5. Dit is in tegenstelling tot het eerdere web, dat standaard in ASCII werd behandeld voordat dat werd vervangen door Latin 1.

Een norm die aan het veranderen is

De laatste herziening van ASCII vond plaats in 1986.

Daarentegen wordt Unicode jaarlijks bijgewerkt. Er worden regelmatig nieuwe scripts, personages en vooral nieuwe emoji's toegevoegd. Met slechts een klein deel hiervan toegewezen, zal de volledige karakterset waarschijnlijk groeien en groeien in de nabije toekomst.

Verwant: De 100 meest populaire emoji's uitgelegd

De 100 meest populaire emoji's uitgelegd

Er zijn zoveel emoji's dat het moeilijk kan zijn om te weten wat ze allemaal betekenen. Hier worden de meest populaire emoji's uitgelegd.

ASCII versus Unicode

ASCII heeft vele decennia zijn doel gediend, maar Unicode heeft het nu effectief vervangen voor alle praktische doeleinden, behalve legacysystemen. Unicode is groter en dus expressiever. Het vertegenwoordigt een wereldwijde, gezamenlijke inspanning en biedt veel meer flexibiliteit, zij het ten koste van enige complexiteit.

E-mail
Wat is ASCII-tekst en hoe wordt het gebruikt?

ASCII-tekst lijkt cryptisch, maar kan op internet op veel manieren worden gebruikt.

Gerelateerde onderwerpen
  • Technologie verklaard
  • Emoji's
  • Jargon
  • Webcultuur
  • Unicode
Over de auteur
Bobby Jack (23 Artikelen gepubliceerd)

Bobby is een technologieliefhebber die het grootste deel van twee decennia als softwareontwikkelaar heeft gewerkt. Hij is gepassioneerd door gamen, werkt als recensie-editor bij Switch Player Magazine en is ondergedompeld in alle aspecten van online publiceren en webontwikkeling.

Meer van Bobby Jack

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.