Символи з пробілами і без них: який підрахунок бере форма
Форма, портал з резюме, SMS або допис у соцмережі рахує символи одним із двох способів: з пробілами або без них. Спершу прочитайте мітку поля чи текст підказки, бо там часто вказано, який саме. Якщо там не сказано ні того, ні іншого, користуйтеся суворішим підрахунком, зазвичай без пробілів. Емодзі та деякі літери з діакритикою також можуть рахуватися як більше ніж один символ у системах, які вимірюють текст у кодових одиницях або байтах, тож текст може пройти в одному лічильнику і не пройти в іншому. Рахуйте інструментом, який дотримується того самого правила, що й форма.
Лічильник слів і символівМій текст перевищує ліміт?БезкоштовноЗ пробілами чи без них
- З пробілами рахує кожен символ, який ви вводите, включно з кожним пробілом, як один символ.
- Без пробілів прибирає всі пробільні символи перед підрахунком, тож слова зливаються. Показник «без пробілів» у лічильнику слів видаляє кожен пробільний символ, включно з переносами рядків, табуляціями та нерозривними пробілами, а потім рахує те, що залишилося.
«Hello world» має 11 символів з пробілом і 10 без нього. Поле, яке просить символи без пробілів, потребує другого числа.
Чому один емодзі може рахуватися як два
Довжина тексту буває двох видів. Перша — та, яку бачать люди: графемний кластер, тобто один видимий символ, навіть якщо його складають кілька кодових точок. Друга — та, що зберігає комп'ютер. Довжина рядка в JavaScript, як і в багатьох старіших системах, рахує кодові одиниці UTF-16. Більшість літер займають одну одиницю, але символи за межами Basic Multilingual Plane, зокрема багато емодзі, займають дві. Емодзі «великий палець угору», U+1F44D, виглядає як один символ, але має дві одиниці UTF-16, тож лічильник, який рахує кодові одиниці, покаже 2.
Лічильник слів тут рахує видимі символи, тому емодзі «великий палець угору» дорівнює 1. Емодзі сім'ї теж дорівнює 1, хоча складається з кількох кодових точок, з'єднаних нульовими з'єднувачами ширини. Форма, яка рахує кодові одиниці, покаже більше, і різниця зростає з кожним емодзі в тексті.
Літери з діакритикою
Літеру é можна зберегти двома способами. Як одну кодову точку, U+00E9, вона скрізь має одну одиницю. Як літеру e, за якою йде комбінований знак гострого наголосу, U+0301, вона має дві кодові точки і дві одиниці. На екрані обидва варіанти виглядають однаково. Лічильник, який рахує кодові точки або одиниці, дасть 2 для другої форми, а лічильник слів дасть 1 для обох.
Обмеження за байтами створюють іншу різницю. В UTF-8 é займає два байти, а більшість емодзі — чотири. Поле з обмеженням за байтами може вмістити менше літер з діакритикою або емодзі, ніж натякає кількість символів. Лічильник слів байти не показує, тож оцініть їх окремо.
Переноси рядків і приховані символи
Перенос рядка в текстовому полі — це один символ. Багато систем зберігають перенос рядка Windows як два символи: повернення каретки і перехід на новий рядок, а веб-форми надсилають переноси саме так. Підрахунок на сервері може тому виявитися більшим, ніж показує поле, на одиницю за кожен перенос рядка. Рахуйте текст так, як він буде надісланий, а не лише так, як ви його набрали.
Невидимі пробіли поводяться інакше. Підрахунок без пробілів не вважає їх пробільними символами, тож вони лишаються в числі й завищують його. Спершу Видалення невидимих символів. Цей інструмент зберігає табуляції та переноси рядків і перетворює нерозривні пробіли на звичайні, які потім прибирає підрахунок без пробілів. Посібник з невидимих символів пояснює, звідки беруться ці символи.
Один текст, п'ять підрахунків
Візьмемо слово «Café», пробіл і емодзі «великий палець угору», U+1F44D, де é збережено як одна кодова точка. Різні міри дають різні суми:
| Міра | Кількість |
|---|---|
| Видимі символи, з пробілами (лічильник слів) | 6 |
| Кодові точки | 6 |
| Кодові одиниці UTF-16 (довжина в JavaScript) | 7 |
| Байти UTF-8 | 10 |
| Видимі символи, без пробілів (лічильник слів) | 5 |
Кожна сума правильна для своєї міри. Яку міру рахувати, вирішує форма, тому правило важливіше за будь-яке окреме число.
Кроки
- Прочитайте правило: символи, байти чи слова, і чи враховуються пробіли.
- Очистіть текст за допомогою Видалення невидимих символів, щоб невидимі символи не завищували підрахунок.
- Вставте текст у Лічильник слів і зчитайте символи та символи без пробілів. Рядки з лімітами показують поширені ліміти, але використовувати треба ту цифру, яку рахує форма.
- Якщо форма рахує байти, оцініть їх окремо, як описано вище.
- Якщо форма показує власний лічильник у реальному часі, довіряйте її цифрі, а не своїй, і скористайтеся цим інструментом, щоб з'ясувати, чому вони різні.
- Якщо правило досі незрозуміле, залиште запас. Ліміти кількості слів розглядає те саме питання для слів і правил платформ.
Особливі випадки
- Правило платформи важливіше. Якщо платформа має власний лічильник, зіставляйте з його цифрою, а не з універсальною.
- Пробіли на кінцях. Форма може обрізати пробіли на початку і в кінці поля, а може й ні. Один пробіл у кінці може змінити підрахунок на одиницю.
- Скопійований текст. Текст, скопійований з веб-сторінки, може містити нерозривні пробіли й невидимі символи. Очистіть його за допомогою Видалення невидимих символів перед підрахунком.
Переклад з Англійський оригінал за допомогою ШІ.
Коментарі
Коментарів поки немає. Будьте першим.


