Przejdź do treści
TextArray
100% lokalnie

Licznik bajtów UTF-8

Zmierz rzeczywisty rozmiar tekstu w bajtach UTF-8, jednostkach UTF-16, punktach kodowych i grafemach.

Wejście
Wynik

Licznik bajtów UTF-8

Liczba znaków i rozmiar w bajtach to nie to samo. W kodowaniu UTF-8 zwykłe litery łacińskie zajmują po jednym bajcie, ale „ó" czy „ł" dwa, większość znaków azjatyckich trzy, a emoji takie jak 👋 cztery — wiadomość o 160 znakach może więc ważyć znacznie więcej niż 160 bajtów. Wklej dowolny tekst, a licznik pokaże jego dokładny rozmiar w bajtach UTF-8, liczbę jednostek UTF-16 (to, co w JavaScripcie zwraca .length), liczbę punktów kodowych Unicode, liczbę grafemów (znaków tak, jak widzi je czytelnik — rodzina 👨‍👩‍👧 liczy się jako jeden znak) oraz liczbę wierszy, a do tego rozmiar zapisu w B, KB lub MB dla obu kodowań.

Takie zestawienie szybko odpowiada na praktyczne pytania: czy ciąg zmieści się w kolumnie VARCHAR mierzonej w bajtach, w segmencie SMS, w limicie 64 KB, w przydziale localStorage? Dlaczego baza danych odrzuca „160-znakowy" tekst i czemu jeden system liczy emoji jako dwa znaki, a inny jako jeden? Narzędzie zestawia obok siebie wszystkie konkurujące definicje „długości", więc dokładnie widać, której używa twój limit.

Na rozmiar w bajtach wpływają też zakończenia wierszy: plik zapisany z windowsowymi końcami CRLF jest o bajt na każdy wiersz większy niż ten sam plik z unixowymi LF. Opcja zakończeń wierszy pozwala mierzyć tekst tak, jak go wklejono, albo tak, jak wyglądałby po konwersji na LF lub CRLF.

Wszystko liczy się lokalnie w twojej przeglądarce przez standardowe API TextEncoder — wklejony tekst nigdzie nie jest wysyłany, więc możesz spokojnie mierzyć pliki konfiguracyjne, tokeny i prywatne wiadomości.

Częste pytania

Dlaczego liczba bajtów jest większa niż liczba znaków?
UTF-8 ma zmienną szerokość: znaki ASCII zajmują 1 bajt, litery z ogonkami i akcentami 2, większość znaków azjatyckich 3, a emoji 4. Tekst z polskimi znakami jest więc w bajtach zawsze większy niż w znakach.
Czym różnią się punkty kodowe od grafemów?
Punkt kodowy to pojedyncza wartość Unicode; grafem to to, co czytelnik widzi jako jeden znak. Emoji złożone z kilku punktów kodowych połączonych ZWJ albo litery ze znakami łączącymi to wiele punktów kodowych, ale jeden grafem.
Której liczby używa limit kolumny w bazie danych?
To zależy od bazy i definicji kolumny — VARCHAR w MySQL z utf8mb4 liczy znaki, a wiele limitów bajtowych (klucze Redis, rozmiary indeksów, niektóre API) liczy bajty UTF-8. Narzędzie pokazuje jedno i drugie, więc sprawdzisz właściwy.
Jak zakończenia wierszy zmieniają rozmiar?
Windowsowe końce CRLF zajmują dwa bajty na złamanie wiersza, unixowe LF jeden. Przełącz opcję zakończeń wierszy, aby zobaczyć rozmiar tekstu w obu konwencjach.
Czy mój tekst jest gdzieś wysyłany?
Nie. Liczenie odbywa się wyłącznie w twojej przeglądarce przez wbudowane API TextEncoder, a tekst nigdy nie opuszcza urządzenia.