CodeKitHub
Teksttools

Byte-teller — Aantal tekens vs bytegrootte

Laatst bijgewerkt:

Typ of plak tekst en zie live hoeveel tekens deze bevat versus hoeveel bytes het daadwerkelijk in beslag neemt in UTF-8 en UTF-16 — de twee getallen lopen uiteen zodra er niet-ASCII-tekens (accenten, CJK-tekst, emoji) bij komen.

0
Characters
0
UTF-8 bytes
0
UTF-16 bytes

Wat is deze tool?

Voor gewone ASCII-tekst (Engelse letters, cijfers, basisleestekens) zijn het aantal tekens en het aantal bytes hetzelfde — elk teken neemt precies één byte in beslag in UTF-8. Zodra tekst letters met accenten, Chinese/Japanse/Koreaanse tekens, cyrillisch, Arabisch, emoji of de meeste andere niet-ASCII-tekens bevat, klopt dit niet meer: één teken kan 2, 3 of 4 bytes innemen in UTF-8, en 2 of 4 bytes in UTF-16.

Dit is belangrijk wanneer een systeem een limiet in bytes heeft in plaats van in tekens — sms-berichten, kolomgroottes in databases, limieten voor API-payloads en sommige sociale platforms meten allemaal in bytes, niet in tekens, waardoor dezelfde tekst stilzwijgend een limiet kan overschrijden, afhankelijk van de taal of symbolen die erin voorkomen.

Waarom gebruiken?

  • Toont aantal tekens, UTF-8-bytes en UTF-16-bytes naast elkaar.
  • Telt emoji en andere tekens buiten het Basic Multilingual Plane correct als één teken, niet twee.
  • Wordt live bijgewerkt terwijl je typt — geen knop nodig.
  • Draait volledig in je browser — geen upload.
  • Gratis, geen registratie, geen limieten.

Hoe te gebruiken

  1. Typ of plak tekst in het vak.
  2. Lees het aantal tekens, het aantal UTF-8-bytes en het aantal UTF-16-bytes eronder — deze worden bijgewerkt terwijl je typt.

Voorbeeld

Invoer

Hello, 世界! 🌍

Uitvoer

12 tekens, 19 UTF-8-bytes, 26 UTF-16-bytes

Het ASCII-gedeelte ("Hello, " en "! ") neemt 1 byte per teken in beslag in UTF-8. Elk Chinees teken neemt 3 bytes in beslag, en de emoji neemt 4 bytes in beslag — daarom is het aantal bytes merkbaar hoger dan het aantal tekens.

Veelvoorkomend gebruik

  • Controleren of een meertalige productbeschrijving past in een databasekolom die is gedefinieerd op basis van bytelengte in plaats van aantal tekens.
  • Het schatten van het sms-segmentgebruik, aangezien sms's worden gefactureerd en opgesplitst op basis van bytegrootte, en niet-Latijnse tekst een andere limiet per segment heeft.
  • Verifiëren dat een API-payload of formulierveld onder een op bytes gebaseerde groottelimiet blijft voordat u het indient.
  • Begrijpen waarom een string die "kort lijkt" wordt geweigerd door een systeem met een op bytes gebaseerde lengtecontrole.

Veelgestelde vragen

Waarom komen aantal tekens en aantal bytes niet overeen?

Unicode-tekst wordt opgeslagen als bytes, en hoeveel bytes elk teken nodig heeft, hangt af van de codering en het teken zelf. In UTF-8 nemen ASCII-tekens 1 byte in beslag, de meeste Latijnse letters met accenten en cyrillische/Griekse/Hebreeuwse/Arabische letters nemen 2 bytes in beslag, de meeste CJK-tekens nemen 3 bytes in beslag, en emoji nemen doorgaans 4 bytes in beslag. Het aantal tekens telt simpelweg symbolen, ongeacht hoe ze worden opgeslagen.

Welk aantal bytes moet ik gebruiken voor een veld met een bytelimiet?

Gebruik de codering die het systeem daadwerkelijk gebruikt om de tekst op te slaan of te verzenden — de meeste moderne web-API's, databases en bestanden gebruiken UTF-8, dus het aantal UTF-8-bytes is meestal relevant. Sommige oudere systemen (zoals interne string-afhandeling in Windows/Java) gebruiken UTF-16.

Telt dit hulpmiddel emoji correct?

Ja. Veel emoji worden intern opgeslagen als een paar UTF-16-"surrogate"-codeeenheden, die door naïeve telmethoden als 2 tekens worden geteld. Dit hulpmiddel telt Unicode-codepunten correct, dus een emoji telt als 1 teken, overeenkomstig hoeveel tekens iemand daadwerkelijk ziet.

Is dit hetzelfde als het hulpmiddel Woordenteller?

Nee — Woordenteller richt zich op het aantal woorden en zinnen voor schrijven. Dit hulpmiddel gaat specifiek over bytegrootte versus aantal tekens, wat belangrijk is voor technische limieten in plaats van woordaantal-vereisten.

Wordt mijn tekst ergens geüpload?

Nee. Het tellen gebeurt lokaal in je browser met de ingebouwde tekstencoder van JavaScript; er wordt niets naar een server gestuurd.

Gerelateerde tools