Codepunten: wat telt lengte?

Begrippen uitgelegd

Een codepunt is een genummerde plek in de Unicode-catalogus. De A heeft bijvoorbeeld het label U+0041. De schrijfwijze met U+ gebruikt hexadecimale getallen: een getalstelsel met zestien cijfers. Je hoeft die labels niet uit te rekenen om tekst in Pliro te gebruiken.

Eén vorm kan meerdere onderdelen hebben

Sommige zichtbare tekens combineren meerdere codepunten. Een letter met een accent kan een kant-en-klare letter zijn, of een gewone letter met een los accent erachter. Een grafeemcluster is een groep die zich als één zichtbaar teken gedraagt. Ook emoji kunnen zo’n groep vormen. Zie de Unicode-uitleg over gecombineerde tekens (Engels).

Pliro gebruikt bij lengte, tekstindexering en tekstlussen codepunten. Het telt daarbij geen grafeemclusters of UTF-8-bytes.

# taal: nl
zeg lengte("🐢")
zeg lengte("👍🏽")

De antwoorden zijn 1 en 2. Het tweede voorbeeld bevat een duimcodepunt en een huidskleurcodepunt. Op je scherm kan het één plaatje lijken.

Waarom is dit handig om te weten?

Een spelersnaam van maximaal tien codepunten heeft niet altijd tien zichtbare letters. Als je tekst zomaar op een codepunt afknipt, kun je een accent of emoji-onderdeel losmaken. Pliro heeft momenteel geen ingebouwde teller voor grafeemclusters.

Houd eerste voorbeelden eenvoudig, maar ga er niet van uit dat iedere naam één codepunt per zichtbare letter heeft. Vergelijk als oefening lengte("A") met lengte("AA"). Leg daarna uit waarom de grootte in bytes een andere vraag beantwoordt.

UTF-8 · Indexeren