Сколько символов в нике «Аня»? Шесть языков, три ответа, и ни одного правильного

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр!

Давайте начнём с простого вопроса.

Под полем регистрации написано «ник, не больше 12 символов». Что здесь значит слово «символ»?

Если вы сейчас мысленно ответили «ну, символ», то вы в хорошей компании: браузер, бэкенд и колонка в базе тоже уверены, что знают ответ.

Просто у каждого он свой. Так вышло из‑за возраста языков.

  • Java и JavaScript проектировали в середине 90-х, когда Unicode помещался в 16 бит, и длину строки они до сих пор считают в 16-битных единицах.

  • Go и Rust хранят строки в UTF-8 и меряют их байтами.

  • Python считает кодовые точки, PostgreSQL тоже.

  • А человек смотрит на экран и видит четвёртую величину, графемы, и для неё долго вообще не было стандартного счётчика.

Пока в нике латиница и кириллица, все четыре числа живут мирно. Потом приходит пользователь с семейным эмодзи и флагом, и ник из 5 видимых знаков внезапно имеет 4 разные длины.

Одно и то же ограничение в 12 символов два слоя системы пропускают, а четыре отвергают. И это мы ещё ничего не обрезали.

Четыре длины одной строки

Вот наш подопытный: Аня

Источник: https://habr.com/ru/companies/otus/articles/1092502/


Интересные статьи

Интересные статьи

В коробочной версии Bitrix24 функция «Авторизоваться под пользователем» является штатной и удобной для администрирования. Однако в корпоративной среде с требованиями ИБ и compliance она порождает инте...
Наши клетки работают от своего рода «батареи». Крошечная энергетическая станция клетки называется «митохондрия», и она является двигателем, который производит энергию, которую вы используете каждую се...
Как избавиться от стресса на английском? Совет который я слышал сотню раз - просто практиковаться. И для меня он не работал. Чем больше я говорил, тем больше стресса было.
При загрузке данных в Highload-блоки возможна ситуация, когда объем загружаемых данных очень велик.Тем не менее, самый распространенный путь для добавления данных - их перебор в цикле, и последующее д...
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...