Счётчик символов и байтов

Вставьте текст, чтобы увидеть его длину так, как её видит читатель, в кодовых точках и байтах, и помещается ли он в одно SMS или пост в X.

Бесплатно Работает в браузере Проверено вторник, 10 ноября 2026 г.

Вставьте или введите текст. Всё считается в вашем браузере; текст никуда не отправляется.

Результат

Символы (графемы) — То, что видит читатель: эмодзи с оттенком кожи или флаг считаются одним.
Кодовые точки — Кодовые точки Юникода: каждый эмодзи считается здесь один раз.
Единицы UTF-16 — Длина, которую JavaScript и Java показывают для строки. Эмодзи занимает две.
Байты UTF-8 — Размер в кодировке, которую используют большинство веб-страниц и файлов.
Байты UTF-16 —
Байты UTF-32 —
Алфавит SMS —
Лимиты

Этот инструмент работает в вашем браузере. То, что вы вводите, нам не отправляется.

Как пользоваться

  1. Вставьте или введите текст в поле Текст. Счётчики обновляются при каждом вводе.
  2. Смотрите Символы (графемы) для длины, которую видит читатель, и Кодовые точки для счёта Юникода.
  3. Смотрите Байты UTF-8 для размера веб-страницы или файла в привычной кодировке.
  4. В разделе Лимиты проверьте строки SMS и X: Осталось — это место в последней части или посте.

Символы, кодовые точки и графемы

Кодовая точка — это одно число в таблице Юникода. Символ так, как его видит читатель, — это графемный кластер, и в одной графеме может быть несколько кодовых точек: «е» с комбинируемым акцентом — это две кодовые точки и одна графема, а семья эмодзи, соединённая соединителями нулевой ширины, — пять кодовых точек и одна графема.

Подсчёт графем использует сегментатор браузера, который следует правилам Юникода для графемных кластеров (UAX #29). Два из них: разрыв не делается перед расширяющим знаком или соединителем нулевой ширины, а последовательность эмодзи или пара региональных индикаторов остаётся вместе.

Байты в UTF-8, UTF-16 и UTF-32

  • UTF-8 использует 1 байт до U+007F, 2 байта до U+07FF, 3 байта до U+FFFF и 4 байта выше.
  • UTF-16 использует одну 16-битную единицу для большинства кодовых точек. Кодовая точка выше U+FFFF занимает две единицы, суррогатную пару, то есть 4 байта.
  • UTF-32 использует ровно 4 байта на каждую кодовую точку.

Лимиты SMS

Сообщение только из знаков GSM-7 помещает 160 символов в одно SMS. Если оно длиннее, каждая часть держит 153 символа, потому что часть 140-байтной полезной нагрузки занимает заголовок. Знаки расширенной таблицы (перевод страницы, ^ { } \ [ ~ ] | и знак евро) занимают по две позиции.

Сообщение с любым знаком вне GSM-7 отправляется в UCS-2, которое держит 70 символов в одном SMS и 67 в каждой части длинного. Русские буквы тоже вне GSM-7, поэтому русское сообщение всегда идёт в UCS-2. Инструмент считает ş, ğ, ı, İ, ç и Ç знаками вне GSM-7, что строже для турецкого текста.

  • Таблицы GSM-7 и расширенная таблица взяты из статьи Википедии GSM 03.38 (на английском); сам стандарт — 3GPP TS 23.038, Alphabets and language-specific information.
  • Цифры 153 и 67 приведены в статье Википедии о SMS (на английском), которая ссылается на стандарт 3GPP для цифр 160 и 70.

Длина поста в X

X считает пост в 280 взвешенных символах. Большинство символов весит 1; эмодзи и символы CJK весят 2. Ссылка считается как 23 символа, какой бы длины она ни была. Диапазоны весов — из конфигурации twitter-text (версия 3); страница X о подсчёте даёт те же правила словами.

Инструмент находит ссылки, которые начинаются с http:// или https://. Ссылка без схемы считается обычным текстом, поэтому пост с такой ссылкой может считаться длиннее, чем его считает X.

Пример: Привет, мир. Ёлка 👋

В тексте 19 символов, и столько же кодовых точек. Эмодзи — одна кодовая точка, но две единицы UTF-16, поэтому длина строки 20. Размер в UTF-8 — 35 байтов: 26 за 13 кириллических букв (по 2 байта), 5 за запятые, точки и пробелы и 4 за эмодзи. Размер в UTF-16 — 20 × 2 = 40 байтов, а в UTF-32 — 19 × 4 = 76 байтов.

Измерение Значение
Символы (графемы) 19
Единицы UTF-16 20
Байты UTF-8 35
Байты UTF-16 40
Байты UTF-32 76
SMS, UCS-2: одно сообщение 20 из 70, осталось 50
Пост в X 20 из 280, осталось 260

Частые вопросы

Почему эмодзи считается одним символом здесь, но двумя единицами в UTF-16?

Эмодзи вне Базовой многоязычной плоскости требует двух 16-битных единиц, суррогатной пары. Читатель всё равно видит один символ, поэтому счёт графем равен одному, а длина в UTF-16 — двум.

Почему турецкий текст занимает больше символов SMS, чем английский?

Буквы ş, ğ, ı, İ, ç и Ç находятся вне алфавита GSM-7, и одна такая буква переводит всё сообщение в UCS-2. SMS в UCS-2 держит 70 символов вместо 160. Русский текст тоже всегда идёт в UCS-2.

Почему счёт X выше, чем число символов, которое я вижу?

X считает эмодзи и китайские, японские и корейские символы за два и каждую ссылку за 23 символа. Счёт здесь следует тем же весам.

Точны ли лимиты SMS и X для любого оператора или платформы?

Они следуют стандарту и опубликованным весам X. Оператор всё же может делить или тарифицировать сообщение иначе, а инструмент не проверяет ссылки без http или https.

Отправляется ли мой текст куда-нибудь?

Нет. Подсчёт выполняется в вашем браузере. Текст не сохраняется и не отправляется на сайт.

Источники

Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..

Мы используем необходимые cookie, чтобы сайт работал. С вашего согласия Google также использует рекламные cookie, чтобы показывать персонализированную рекламу. Если вы откажетесь, реклама всё равно будет показываться, но не будет персонализированной.