Woorden tellen
Woorden, tekens en leestijd tellen.
Tekst
Onzichtbare tekens maken en opsporen.
Unicode kent een reeks tekens zonder zichtbare weergave, elk met een eigen doel.
| Teken | Functie |
|---|---|
| Harde spatie | voorkomt een regelafbreking |
| Smalle spatie | fijnere typografische afstand |
| Spatie zonder breedte | staat afbreken toe zonder witruimte |
| Zacht koppelteken | afbreekpunt, alleen zichtbaar indien nodig |
| Verbinder zonder breedte | stuurt de verbinding van tekens |
In het Nederlands is de harde spatie het nuttigst. Die hoort tussen getal en eenheid — 5 kg, 20 °C — en in afkortingen als "o.a." of "d.w.z." die niet over twee regels mogen breken.
Ook in bedragen komt hij van pas, want in het Nederlands is het duizendtalscheidingsteken een punt en het decimaalteken een komma, en het euroteken hoort niet los van het bedrag te vallen.
Het zachte koppelteken is bij ons extra nuttig, omdat het Nederlands lange samenstellingen aaneen schrijft. Bij een woord als "arbeidsongeschiktheidsverzekering" bepaal je er zelf mee waar afgebroken mag worden, en dat scheelt lelijke regels.
Let op: automatisch afbreken door de browser gaat bij Nederlandse samenstellingen regelmatig mis als je de taal niet declareert. Zet het lang-attribuut goed en het gaat een stuk beter.
Dit is de reden waarom je ze moet kunnen opsporen.
Bij kopiëren uit Word, uit een pdf of van een website sleep je regelmatig onzichtbare tekens mee.
In formuliervelden zorgen ze ervoor dat een e-mailadres, een IBAN of een kortingscode die er "overduidelijk goed" uitziet toch wordt geweigerd.
In spreadsheets zorgen ze ervoor dat twee ogenschijnlijk identieke waarden niet als gelijk worden herkend, en dat een verticaal zoeken niets vindt wat er wel staat.
In code zijn ze bijzonder vervelend, omdat de compiler een foutmelding geeft die niets met het echte probleem te maken heeft.
En in databases komen ze stilletjes in records terecht en duiken later bij een koppeling op als een onverklaarbaar verschil.
Dus als iets "eigenlijk goed zou moeten zijn" en toch niet werkt, is kijken naar onzichtbare tekens een van de eerste dingen die loont.
Een paar dingen die goed zijn om te weten.
Onzichtbare tekens worden gebruikt om filters te omzeilen, bijvoorbeeld door een geblokkeerd woord met een spatie zonder breedte in het midden te schrijven.
Ze worden ook gebruikt om documenten te markeren: wie een vertrouwelijk document naar meerdere ontvangers stuurt, kan iedereen een onzichtbare handtekening meegeven en bij een lek nagaan welke kopie is doorgespeeld. Dat kan technisch, en het is arbeidsrechtelijk en privacyrechtelijk gevoelig.
Een vergelijkbaar principe werkt met homoglyfen — Cyrillische letters die op Latijnse lijken — bij phishingdomeinen. Dat zijn geen onzichtbare tekens, maar het mechanisme is hetzelfde.
De praktische conclusie: verwerk je invoer van gebruikers, normaliseer die dan. Pas Unicode-normalisatie toe, verwijder onzichtbare stuurtekens, en vergelijk of bewaar pas daarna.
En in wachtwoorden hebben ze geen enkele zin: ze leveren nauwelijks veiligheid op en zorgen er ooit voor dat je zelf niet meer binnenkomt.
Alles werkt in je browser.
Om regelafbrekingen te voorkomen, bijvoorbeeld bij "5 kg" of "o.a.".
Een toegestaan afbreekpunt dat alleen zichtbaar wordt als er echt afgebroken moet worden.
Vaak door onzichtbare tekens die zijn meegekomen bij het kopiëren uit Word of een pdf.
Technisch wel, en dat is arbeidsrechtelijk en privacyrechtelijk gevoelig.
Normaliseren en stuurtekens verwijderen voordat je vergelijkt of opslaat.
Nee.