Перейти к содержанию
TextArray
100% локально

Счетчик байтов UTF-8

Измеряйте реальный размер текста в байтах UTF-8, единицах UTF-16, кодовых точках и графемах.

Входные данные
Выходные данные

Счетчик байтов UTF-8

Количество символов и размер байтов — это не одно и то же. В UTF-8 простые английские буквы занимают по одному байту каждая, но «é» занимает два, большинство символов CJK — три, а такой эмодзи, как 👋, — четыре — поэтому сообщение длиной 160 символов может легко превышать 160 байт. Вставьте любой текст, и этот счетчик сообщит его точный размер в байтах UTF-8, кодовые единицы UTF-16, которые будет сообщать JavaScript .length, количество кодовых точек Юникода, количество графем (воспринимаемых пользователем символов, поэтому семейство 👨‍👩‍👧 считается за одну) и количество строк, а также сохраненный размер в Б, КБ или МБ для обеих кодировок.

Эта разбивка быстро отвечает на практические вопросы: будет ли эта строка соответствовать столбцу VARCHAR(255), измеряемому в байтах, сегменту SMS, пределу полезной нагрузки в 64 КБ, бюджету заголовка HTTP, квоте localStorage? Почему база данных жалуется на строку «160 символов» и почему смайлик считается как два символа в одной системе и один в другой? Счетчик показывает все конкурирующие определения «длины» рядом, так что вы можете точно увидеть, какое из них используется в вашем лимите.

Окончания строк также имеют значение для размера байтов: файл, сохраненный с окончаниями Windows CRLF, на один байт больше на строку, чем тот же файл с окончаниями Unix LF. Параметр окончания строк позволяет измерять текст в том виде, в каком он был вставлен, или в том виде, в котором он будет преобразован в LF или CRLF.

Все вычисляется локально в вашем браузере с использованием стандартного API TextEncoder — вставляемый вами текст никогда не загружается, поэтому файлы конфигурации, токены и личные сообщения можно безопасно измерять.

FAQ

Почему количество байтов превышает количество символов?
UTF-8 — это кодировка переменной ширины: буквы ASCII занимают 1 байт, буквы латинского алфавита с диакритическими знаками — 2, большинство символов CJK — 3 и эмодзи — 4. Поэтому любой текст, отличный от ASCII, имеет больший размер в байтах, чем в символах.
В чем разница между кодовыми точками и графемами?
Кодовая точка — это одно значение Юникода; Графема — это то, что читатель видит как один символ. Эмодзи, построенные из нескольких кодовых точек, соединенных ZWJ, или букв с комбинированными акцентами, представляют собой несколько кодовых точек, но одну графему.
Какое число используется для ограничения столбца базы данных?
Это зависит от базы данных и определения столбца — MySQL utf8mb4 VARCHAR ограничивает количество символов, в то время как многие ограничения на основе байтов (ключи Redis, размеры индексов, некоторые API) учитывают байты UTF-8. Этот инструмент показывает оба варианта, поэтому вы можете проверить правильный.
Как окончания строк меняют размер?
Окончания CRLF в Windows составляют два байта на разрыв строки, а окончания LF в Unix — один. Переключите параметр окончания строк, чтобы увидеть размер текста, который будет сохранен при любом соглашении.
Мой текст где-нибудь загружен?
Нет. Подсчет выполняется полностью в вашем браузере с помощью встроенного API TextEncoder, и ваш текст никогда не покидает ваше устройство.