UTF-8: hoe letters bytes worden

Begrippen uitgelegd

Een computer bewaart een tekstbestand als getallen. UTF-8 is een afspraak om tekst om te zetten in bytes, en weer terug. Zo’n afspraak heet een tekstcodering. Denk aan twee vrienden met hetzelfde codeboek: ze kunnen elkaars berichten lezen doordat ze dezelfde regels gebruiken.

Waarom die 8?

UTF betekent Unicode Transformation Format: een omzettingsvorm voor Unicode. De 8 verwijst naar eenheden van acht bits: bytes. Eén Unicode-codepunt gebruikt in UTF-8 één tot vier bytes. Het betekent dus niet dat iedere letter acht bytes gebruikt. Zie de uitleg van Unicode over codering (Engels).

Tekst Codepunten UTF-8-bytes
A 1 1
é 1 2
🐢 1 4

Hier is é geschreven als één codepunt. Een accent kan ook apart worden opgeslagen; bij codepunten lees je hoe dat zit.

Probeer het in Pliro

# taal: nl
zeg "Café 🐢"
zeg lengte("Aé🐢")

Je ziet Café 🐢 en daarna 3. lengte telt codepunten. De tweede regel toont dus niet de zeven bytes die deze tekst gebruikt.

Wat is een BOM?

UTF-8 met BOM, soms geschreven als UTF-8-BOM, betekent: een UTF-8-tekstbestand met een extra, onzichtbaar etiket helemaal vooraan. BOM is de afkorting van byte order mark. Denk aan een sticker op een envelop die de lezer vertelt hoe het bericht erin is opgeslagen.

Je teksteditor kan dit etiket toevoegen bij het bewaren. Je ziet het meestal niet tussen de letters van je programma. Het is niet het woord BOM dat je in de code typt. Het is ook niet de regel # taal: nl.

Bewaaroptie Wat staat er in het bestand? Geschikt voor Pliro-broncode?
UTF-8 zonder BOM Jouw tekst opgeslagen als UTF-8 Ja
UTF-8 met BOM / UTF-8-BOM Een onzichtbaar etiket gevolgd door jouw UTF-8-tekst Nee, Pliro keurt dat etiket momenteel af

Het etiket neemt drie extra bytes in. UTF-8 heeft het niet nodig. Andere programma’s kunnen het wel accepteren. Daardoor kan een bestand er normaal uitzien in je editor en toch door Pliro worden afgekeurd. De Unicode-uitleg (Engels) beschrijft de technische achtergrond.

Hoe bewaar ik zonder dat etiket?

Heeft een Pliro-bronbestand uit een andere editor dit probleem?

  1. Bewaar een kopie van het oorspronkelijke bestand.
  2. Zoek de instelling tekstcodering: de optie die bepaalt hoe de editor tekst bewaart. Kies UTF-8 zonder BOM. Sommige editors noemen dat gewoon UTF-8 en bieden UTF-8 met BOM apart aan. Lees bij twijfel de beschrijving van de optie.
  3. Bewaar het bestand en controleer het opnieuw in Pliro. Laat de brontaalregel bovenaan staan.

De bestandsnaam veranderen past deze instelling niet aan. Op Backspace drukken bij de eerste zichtbare letter lost het meestal ook niet op: het etiket is verborgen. Zie je geen duidelijke coderingsoptie? Vraag dan een leerkracht of andere helper om die samen te zoeken.

Deze stappen zijn alleen nodig wanneer het probleem voorkomt. Je hoeft geen bytepatronen te leren voordat je kunt programmeren.

Veranderen accenten in vreemde tekens? Controleer dan de tekstcodering van je editor. Een andere bestandsextensie verandert de codering niet. Bewaar een kopie voordat je een bestaand bestand omzet.

Vervang de schildpad door twee schildpadden. Voorspel eerst wat lengte toont.

Unicode · Regeleinden