Размер текста
Введите текст, чтобы увидеть количество символов, слов, строк и байт в кодировке UTF-8. Значения обновляются по тексту в поле «Ввод текста».
Калькулятор длины текста и размера в байтах
Формула размера текста
Где:
- \(T\) — текст, введённый в поле «Ввод текста»
- \(C\) — Символы, посчитанные как кодовые единицы UTF-16
- \(W\) — Слова, посчитанные по совпадениям с
/\b\w+\b/g - \(L\) — Строки; каждая последовательность перевода каретки, перевода строки или пара «перевод каретки + перевод строки» начинает новую строку
- \(B\) — Байты в кодировке текста UTF-8
Это четыре разных меры одного и того же ввода. В частности, количество символов — не всегда число видимых знаков, а количество байтов — не всегда равно количеству символов.
Размер текста — пример расчёта
Пример: используйте стандартный ввод текста: «Hello world!» в первой строке и «This is WPCalc.» во второй. Строки содержат 12 и 15 символов соответственно, и между ними один перевод строки.
\[ \begin{aligned} C&=12+1+15=28 \\ W&=2+3=5 \\ L&=1+1=2 \\ B&=12+1+15=28\ \text{байт} \end{aligned} \]
Результат: 28 символов, 5 слов, 2 строки и 28 байтов. Каждый символ в этом примере, включая перевод строки, занимает один байт UTF-8.
Как пользоваться калькулятором
- Введите или вставьте свой текст в поле «Ввод текста». Стандартный текст доступен, если вы хотите проверить, как работают подсчёты, прежде чем вводить свой.
- Посмотрите значение «Символы» — длину ввода в единицах UTF-16 — и «Слова» — количество совпадений, найденных по правилу подсчёта слов этого калькулятора.
- Проверьте «Строки» — количество строк, включая возможную пустую строку в конце. Проверьте «Байты» — размер текста в кодировке UTF-8.
- Если вы проверяете ограничение, сравните результат с единицей, указанной в этом ограничении. Лимит символов, лимит слов и лимит байтов не взаимозаменяемы.
Что показывает размер текста
Размер текста может означать разное. Требования к тексту могут задаваться в словах; поле формы может ограничивать символы; формат файла или API может ограничивать байты. Этот калькулятор показывает все четыре значения вместе, чтобы вы могли использовать меру, подходящую для вашей задачи. Он измеряет текст, введённый в поле «Ввод текста», а не весь документ, страницу или файл, содержащий этот текст.
Символы использует длину строки в JavaScript, которая считает кодовые единицы UTF-16. Обычные английские буквы и знаки препинания обычно считаются по одной. Некоторые символы, включая многие эмодзи, считаются за две кодовые единицы, хотя выглядят как один знак. Комбинируемые знаки тоже могут превращать один видимый символ в несколько кодовых единиц. Поэтому для лимита, определённого в видимых знаках или кодовых точках Unicode, этот результат может отличаться от нужного вам подсчёта.
Слова считает совпадения с шаблоном JavaScript /\b\w+\b/g. Он распознаёт как «слова» последовательности ASCII-букв, цифр и знаков подчёркивания. Например, «don't» считается двумя совпадениями, потому что апостроф разделяет их. Буквы вне этого шаблона на основе ASCII могут быть пропущены или разбиты, поэтому этот результат не является лингвистически осознанным подсчётом слов.
Строки считает разрывы строк плюс один: пара «перевод каретки + перевод строки» считается одним разрывом. Поэтому пустой ввод отображается как одна строка, а текст, оканчивающийся переводом строки, — с дополнительной пустой строкой. Байты измеряет кодировку ввода в UTF-8. Обычный текст из базовой таблицы ASCII, как правило, использует один байт на символ, тогда как многие буквы с диакритикой и символы используют больше. Например, одиночный «é» занимает одну кодовую единицу UTF-16, но два байта UTF-8; многие эмодзи занимают две кодовые единицы UTF-16 и четыре байта UTF-8.
Допущения и практические ограничения
Используйте результат в байтах, когда соответствующая система указывает байты UTF-8. Это не мера использования памяти, не размер сжатой полезной нагрузки и не размер сохранённого документа с заголовками, форматированием или другим содержимым. Если служба изменяет текст перед сохранением или отправкой — например, экранирует символы или нормализует переводы строк, — итоговое количество байтов может отличаться.
Окончания строк влияют на подсчёт символов и байтов. Перевод строки использует одну кодовую единицу и один байт UTF-8; пара «перевод каретки + перевод строки» — по две каждого. Здесь обе считаются одним разрывом строки. Пробелы, табуляции, знаки препинания и символы перевода строки тоже входят в «Символы» и «Байты», даже если не входят в «Слова».
Прежде чем полагаться на лимит, выясните, какое определение использует конечная система. Некоторые платформы считают кодовые точки Unicode или видимые знаки вместо кодовых единиц UTF-16, а их правила подсчёта слов могут отличаться. Например, длина SMS также зависит от кодировки сообщения и его сегментации; результат в байтах UTF-8 не предсказывает количество сегментов SMS.
Чтобы проверить количество символов другим текстовым инструментом, воспользуйтесь Счётчиком символов. Вы также можете удалить эмодзи или удалить дублирующиеся строки перед измерением изменённого текста. Перепроверяйте значения после любого изменения, ведь даже завершающий перевод строки меняет результат.
Часто задаваемые вопросы
Как вручную проверить размер короткого текста?
Разберите каждую меру отдельно. Для «A🙂» буква занимает одну кодовую единицу UTF-16 и один байт UTF-8; эмодзи занимает две кодовые единицы UTF-16 и четыре байта UTF-8. Получается 3 символа и 5 байтов. По правилу этого калькулятора текст содержит 1 слово и 1 строку. Для более длинного текста также посчитайте разрывы строк и пробелы.
Почему количество слов отличается от Microsoft Word или Google Docs?
Текстовые процессоры используют собственные правила для знаков препинания, чисел и языков. Этот калькулятор использует простой шаблон, который может считать слово через дефис двумя словами, а слово с подчёркиваниями — одним. Он также может пропускать слова, написанные письменностями вне его правила поиска совпадений. Если школа, издательство или работодатель задаёт лимит слов, уточните, какой инструмент или метод подсчёта они принимают.
Как перевести результат в байтах в КБ или МБ?
Для десятичных единиц разделите байты на 1 000, чтобы получить килобайты (kB), или на 1 000 000, чтобы получить мегабайты (MB). Для двоичных единиц разделите на 1 024, чтобы получить кибибайты (KiB), или на 1 048 576, чтобы получить мебибайты (MiB). Выясните, какие единицы использует конечная система: указанный лимит «КБ» не всегда даёт понять, какая при этом применяется система.
Почему после вставки текста появились невидимые символы?
Вставленный текст может содержать табуляции, неразрывные пробелы, символы нулевой ширины или завершающий разрыв строки. Они могут повлиять на количество символов или байтов, не будучи заметными на экране. Вставьте текст в простой текстовый редактор, чтобы изучить его, либо удалите и заново наберите подозрительный промежуток. Вставка как обычный текст убирает форматирование, но не обязательно удаляет скрытые символы Unicode.
Всегда ли один эмодзи считается одним символом?
Нет. То, что выглядит как один эмодзи, может состоять из нескольких компонентов Unicode, например модификатора тона кожи или последовательности, объединённой в один отображаемый знак. Поэтому количество его символов и байтов может быть выше, чем у простого эмодзи. Если платформа ограничивает видимые знаки, а не кодовые единицы UTF-16, воспользуйтесь её собственным счётчиком, чтобы уточнить, как она учитывает эмодзи.
Какое количество символов или слов хорошо подходит для моего текста?
Универсально «хорошего» количества не существует; целевое значение зависит от того, где будет использоваться текст. Задание может требовать диапазон слов, тогда как API может накладывать лимит байтов. Для формы или профиля отдавайте приоритет ясности и проверяйте указанный максимум. Сниппеты в результатах поиска особенно изменчивы: то, сколько текста будет показано, может зависеть от ширины экрана, а не только от количества символов.