Publicatie:Tekencodering (character encoding)
Het is je wellicht ook al overkomen: je opent een document en bepaalde tekens blijken niet correct weergegeven. Karakters met een accent vormen vaak een probleem. Hoe komt dat? Een fout in het bestand? Neen, het heeft te maken met tekencodering. Een beter begrip van tekencodering helpt je dit probleem omzeilen.
Titel | Tekencodering (character encoding) (Voorkeurstitel) |
Locatie | META nummer 2021/1 |
Uitgever | |
Jaar van uitgave | 2021 |
Rechten | CC-BY-SA |
Persistent ID |
Auteur
Bart Magnus (meemoo, Vlaams instituut voor het archief)
Betekenisvolle enen en nullen
Digitale documenten bestaan uit nullen en enen. De eindeloze reeksen nullen en enen krijgen pas betekenis voor mensen wanneer software ze omzet. Wanneer je een foto opent, worden ze een verzameling pixels die een bepaalde kleur krijgen om een beeld op te bouwen. In een tekstueel document worden het karakters die we kunnen lezen. De omzetting lijkt vanzelf te gebeuren, maar niets is minder waar.
Iedereen is vertrouwd met de term kilobyte als eenheid om aan te geven hoe veel geheugen een bestand inneemt. Net zoals een kilometer 1000 meter is, is een kilobyte 1000 byte. Een byte is een opeenvolging van 8 bits. Een bit is simpelweg een binaire eenheid die ofwel 0 of 1 als waarde heeft. Een byte is dus een achtcijferig binair getal, (bv. 00110101). In totaal zijn er 256 manieren (28) om een byte te vullen. Computers werken met bepaalde conventies/standaarden om die binaire getallen naar een voor mensen zinvol teken te vertalen. Die conventies noemen we tekensets. Tekencodering is dus het omzetten van achtcijferige binaire getallen naar betekenisvolle tekens volgens de logica van een bepaalde tekenset. Of andersom: het omzetten van een teken op het toetsenbord van jouw computer naar de nullen en enen die een computer moet f.
In de meeste gevallen verloopt dit probleemloos. De meeste documenten die je vandaag in je mailbox vindt, zijn gecodeerd volgens een hedendaags gangbare tekenset. De software die je gebruikt om die documenten openen, slaagt er meestal ook in om die tekenset te achterhalen en het document leesbaar weer te geven. Toch zal het in sommige gevallen nodig zijn om zelf een tekenset te specificeren, bijvoorbeeld wanneer je tekstbestanden in een spreadsheet wilt openen of wanneer je oude documenten in een hedendaagse tekstverwerker wilt openen.
Een beetje geschiedenis
De eerste gestandaardiseerde tekenset was ASCII (American Standard Code for Information Interchange). Deze telde oorspronkelijk 128 tekens. Genoeg voor de meeste Engelse teksten, maar ontoereikend voor veel andere talen.
Met ISO Latin 1 (of ISO-8859-1) ontstond een eerste gestandaardiseerde tekenset waarmee de meest gangbare tekens uit de belangrijkste West-Europese talen kunnen worden voorgesteld. Met ISO Latin 2, 3, 4 volgden ook tekensets voor Oost-, Zuid- en Noord-Europese talen.
In een wereld met steeds meer internationale uitwisseling werd het plan opgevat om alle tekens in één universele tekenset te vatten. Unicode was geboren. Met 4 bytes (32 bits) per teken voorzag men voldoende ruimte. Het betekent dat aan meer dan 4 miljard tekens (232) een unieke combinatie van enen en nullen kon worden toegekend. Unicode bouwde verder op ASCII in de zin dat de eerste 256 tekens identiek zijn. Daardoor zullen teksten die correct worden weergegeven in ASCII nooit problemen opleveren in Unicode. De meest gangbare standaard vandaag is UTF-8. Deze set slaat tekens uit de Unicode-tekenset op met een variabele lengte: 1 bit wanneer er maar 1 nodig is, 4 bits als dat noodzakelijk is.
Nooit meer gekke tekens
Zie je voortaan foute tekens weergegeven in een document? Dan weet je dat het wellicht aan de tekencodering ligt. Afhankelijk van het document dat je voor je hebt, kan je op zoek naar de meest geschikte tekenset om het document correct te lezen. Een overzicht van de meest courante tekensets vind je onder andere op https://en.wikipedia.org/wiki/Character_encoding#Common_character_encodings.