Буквы-двойники
CYRILLIC SMALL LETTER A (U+0430)
Кириллическая буква «а». Почти в любом шрифте она нарисована в точности как латинская a — и при этом является совершенно другой кодовой позицией.
- Кодовая позиция
U+0430- Категория
- Буквы-двойники
- Удаляется по умолчанию
- Нет
- Управляющий параметр
- Буквы-двойники
--confusables - Может нести нагрузку
- Нет
Откуда он берётся
Разумеется, из русского, украинского, болгарского и сербского текста. В латинских словах она берётся из забытой кириллической раскладки, из копирования смешанного текста и из намеренной подмены — подделки доменов, обхода фильтров и омоглифной стеганографии, которая кодирует биты заменой латинских букв на двойников.
Почему это важно
Одна подменённая буква ломает любую проверку на точное совпадение, оставаясь невидимой для читателя. Так регистрируется «pаypal.com», так запрещённое слово проскакивает мимо фильтра, так внутри слова хранится скрытый бит.
До и после
Одна кириллическая буква в остальном латинском слове. Отрисовка одинакова, строка — нет.
Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.
Когда он уместен
В русском, украинском, болгарском, сербском и любом другом языке с кириллическим письмом — то есть в очень большом количестве совершенно обычного текста.
Как его удалить
Включите параметр «Буквы-двойники» (`--confusables`) — и она станет латинской «a». Осторожно: этот параметр отображает 1513 кодовых позиций на латиницу и уничтожит настоящий кириллический, греческий, армянский текст и чероки. Включайте его, когда точно знаете, что текст должен быть латинским.
Это водяной знак ИИ?
Не водяной знак
Нет. Кириллическая буква в латинском слове это либо след раскладки, либо намеренная подмена, сделанная человеком. Языковые модели не вставляют омоглифы как метки — они выдают их только тогда, когда окружающий текст и правда кириллический.
Никак не связан с машинно сгенерированным текстом. Он приходит из программы, с клавиатуры или от человека.
Вопросы
Так работают домены-двойники?
Да. Интернационализированное доменное имя может содержать кириллические буквы, которые рисуются как латинские. Браузеры защищаются тем, что показывают такое имя в форме punycode, когда в нём смешаны письменности.
Уничтожит ли параметр «Буквы-двойники» русский текст?
Да. Он безусловно отображает двойников на латиницу, поэтому русский, греческий, армянский текст и чероки будут уничтожены. Поэтому он выключен по умолчанию, и переключатель об этом прямо говорит.
Как найти их, ничего не меняя?
Не чистите текст, а покажите скрытое. Каждый двойник будет перечислен со своей позицией, своей кодовой позицией и латинской буквой, которую он изображает, — и ничего не изменится.
Проверьте свой текст
Вставьте что угодно в инструмент очистки, чтобы увидеть каждый скрытый символ: позицию, кодовую позицию и то, что произойдёт с каждым из них. Ничего никуда не отправляется.