Калькулятор длины строки
Анализ длины текста в символах, байтах, графемных кластерах и не только.
Единицы кода JS (UTF-16)
Кодовые точки Unicode
Графемные кластеры
Байты UTF-8
Слова
Строки
Почему эти числа различаются?
- Единицы кода JS —
.lengthв JavaScript. Считает единицы кода UTF-16 (эмодзи = 2). - Кодовые точки Unicode —
[...str].length. Каждая кодовая точка — одна единица. Ближе к «реальным» символам. - Графемные кластеры — То, что люди воспринимают как единые символы. Флаги, эмодзи с тоном кожи и комбинирующие знаки считаются как один.
- Байты UTF-8 — Размер при кодировании в UTF-8. ASCII = 1 байт, эмодзи = 4 байта.
Часто задаваемые вопросы
The String Length Calculator reports six distinct length metrics for any text: JavaScript code units (UTF-16 .length), Unicode codepoints, grapheme clusters (perceived characters), UTF-8 byte count, word count, and line count.
JavaScript measures string length in UTF-16 code units, so characters above U+FFFF (like most emoji) count as 2. Python 3 counts Unicode codepoints, so each character counts as 1. The String Length Calculator shows both metrics simultaneously so you can see the discrepancy for any input.
A grapheme cluster is what a human perceives as a single character — for example, a flag emoji (two regional indicator letters) or a skin-tone emoji (base emoji plus a modifier) both appear as one character visually but span multiple codepoints. The String Length Calculator uses the browser's Intl.Segmenter API to count grapheme clusters accurately.
Paste your text into the String Length Calculator and read the UTF-8 Bytes metric. ASCII characters cost 1 byte each, most Latin-extended and common symbols cost 2, CJK characters cost 3, and emoji cost 4 bytes in UTF-8.
Many systems enforce byte-based limits rather than character limits — database column sizes, HTTP header values, message queue payloads, and API fields are common examples. The String Length Calculator makes it easy to check whether your text fits within such constraints.
JavaScript strings are encoded as UTF-16, and characters above U+FFFF require two code units called a surrogate pair. The .length property counts code units, not characters, so a single emoji can return 2. Unicode codepoints count actual characters using the spread operator [...str].length.
Yes — the calculator correctly handles all Unicode text including emoji, family sequences, flag sequences, and combining characters. The grapheme cluster count uses the Intl.Segmenter API for browser-native accuracy.
Yes — all whitespace characters (spaces, tabs, newlines) are included in the character and byte counts. Words are counted by splitting on whitespace, and lines are counted by newline characters, matching typical editor behavior.
UTF-16 byte size equals the JavaScript code unit count multiplied by two, since each UTF-16 code unit is 2 bytes. Characters in the supplementary planes (above U+FFFF) use two code units and therefore cost 4 bytes in UTF-16.
Yes, with caveats. Twitter counts in Unicode codepoints with special rules for URLs; SMS uses UTF-16 code units with different limits for GSM-7 versus Unicode messages. The calculator shows all relevant metrics so you can apply the platform's specific counting rules.