Как пользоваться
- Вставьте или введите текст в поле Текст. Счётчики обновляются при каждом вводе.
- Смотрите Символы (графемы) для длины, которую видит читатель, и Кодовые точки для счёта Юникода.
- Смотрите Байты UTF-8 для размера веб-страницы или файла в привычной кодировке.
- В разделе Лимиты проверьте строки 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.
Отправляется ли мой текст куда-нибудь?
Нет. Подсчёт выполняется в вашем браузере. Текст не сохраняется и не отправляется на сайт.
Источники
- Википедия (на английском): SMS, длины сообщений и цифры 153 и 67
- Википедия (на английском): GSM 03.38, таблицы GSM 7 бит и расширенная таблица
- 3GPP TS 23.038 (на английском): Alphabets and language-specific information
- Википедия (на английском): UTF-8, байты на кодовую точку
- Википедия (на английском): UTF-16, единицы кода и суррогатные пары
- Википедия (на английском): UTF-32, фиксированная ширина
- Unicode UAX #29 (на английском): Unicode text segmentation, графемные кластеры (ревизия 49)
- X (на английском): Counting characters, длина поста и веса
- twitter-text, config/v3.json (на английском): диапазоны весов, которые использует X
Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..