Русский
Открыть в Telegram

Пост Одна и та же строка может быть представлена по-разному в Unicode, и стандарт это учитывает. Он определяет два типа эквив…

19 февраля 2026
Б
Библиотека Python разработчика | Книги по питону
Одна и та же строка может быть представлена по-разному в Unicode, и стандарт это учитывает. Он определяет два типа эквивалентности: последовательности могут быть канонически эквивалентными или совместимыми. Канонически эквивалентные последовательности выглядят одинаково, но содержат разные кодовые точки. Например, символ ö может быть представлен как LATIN SMALL LETTER O WITH DIAERESIS (U+00F6) или как комбинация из o и диакритического знака: LATIN SMALL LETTER O (U+006F) + COMBINING DIAERESIS (U+0308). Совместимые последовательности выглядят по-разному, но могут трактоваться одинаково с точки зрения смысла, например, ff и ff. Для каждого из этих типов эквивалентности можно нормализовать строку в Unicode, сжимая или расширяя последовательности. В Python для этого используется модуль unicodedata: import unicodedata modes = [ # Сжать канонически эквивалентные 'NFC', # Расширить канонически эквивалентные 'NFD', # Сжать совместимые 'NFKC', # Расширить совместимые 'NFKD', ] s = 'ff + ö' for mode in modes: norm = unicodedata.normalize(mode, s) print('\t'.join([ mode, norm, str(len(norm.encode('utf8'))), ])) Результат: NFC ff + ö 8 NFD ff + ö 9 NFKC ff + ö 7 NFKD ff + ö 8 📲 Мы в MAX 👉@BookPython
5 · 1.8K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуЕсли вы создаёте новые объекты внутри метода __init__, возможно, будет лучше передавать их как аргументы и использовать фабричный метод. Это позволяет разделитьББиблиотека Python разработчика | Книги по питонуСегодня я покажу вам простой, но очень полезный приём, который часто выручает при работе с Python-скриптами — автоматическое логирование вызовов функций с помощ
это сообщение
ББиблиотека Python разработчика | Книги по питонуОбычно вы взаимодействуете с генератором, запрашивая данные с помощью next(gen). В Python 3 вы также можете отправлять значения обратно в генератор с помощью g.ББиблиотека Python разработчика | Книги по питонуСтандартный механизм расширения путей в оболочке называется globbing. Шаблоны, которые вы используете для сопоставления путей, называются globs. $ echo /li* /li
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем