Gitea и омоглифы не в ту сторону
Омоглифы – это символы, совпадающие по начертанию, но различные по значению (интерпретации). Например, Н, H и Η, а именно – заглавная кириллическая “н”, заглавная “h” английского алфавита и заглавная “η” греческого алфавита. Пришлось тут столкнуться с забавной “программной” интерпретацией данного явления. Пакет Gitea (это пакет для работы с исходным кодом в git, с веб-интерфейсом и прочими полезными функциями) при попытке посмотреть некий русскоязычный текстовый файл из репозитория на сервере – показывал мне в браузере предупреждение, что “This file contains ambiguous Unicode characters!” (“Этот файл содержит “неоднозначные” символы Unicode!”). И действительно, встроенный фильтр подсвечивал буквы вроде “a”, “T” и “о”, но не во всех случаях. Так, целиком подсвечивалось сочетание букв “То” из “То есть”. А в другом месте этого же текста подсвечивалась одинокая буква “а”, при помощи которой обозначался союз “а”.
Сперва показалось, что это действительно в текст прокрались “омоглифы”. Такое случается, особенно, когда используешь несколько раскладок клавиатуры: английская “C” прокрадывается и занимает место “С”, предположим. Однако попытка исправить эти буквы в исходном файле и отправить изменения к успеху не привела: выяснилось, что ничего-то там не меняется – буквы уже использованы кириллические, в файле всё записано верными буквами. Хитрость оказалась в том, что пакет Gitea, руководствуясь настройками “локали” в браузере (а у меня использовалась англоязычная), самостоятельно делал вывод, что данного пользователя могут ввести в заблуждение сочетания кириллических букв, похожие на английские слова, о чём и предупреждал. То есть, “То” в этом “То есть”, выглядит английским “to”, а “а” – неотличима от артикля. В общем, как говорится в тексте, содержащем исходную формулировку знаменитой, – но известной только специалистам, – проблемы Винни-Пуха: “зачем эта хта обязательно та, а жерка, как правило, эта?”. Кто бы мог подумать.
(Уточнение: под “словами” подразумеваются последовательности омоглифов, обособленные пробелами.)
Адрес записки: https://dxdt.ru/2023/04/05/9806/
Похожие записки:
- Реплика: явления слуха и представления о физических процессах
- Техническое: занимательный пример из практики DNS в Интернете
- Форматы ключей
- Офтопик: антенны в английском языке
- Рандомизация регистра символов в DNS
- Реплика: эффекты наложенных сетей уровня браузера в вебе
- Кибернетический след в "Илиаде" и цветовой сдвиг
- Таблицы подстановок: картинка
- Реплика: перемешивающие сети Google и фильтрация
- Бесконечные процессы как корни уравнений
- Python, "численный" j-инвариант и десятичные цифры
Комментарии читателей блога: 2
1. 6th April 2023, 07:10 // Читатель oleg написал:
А как Gitea “узнавала” что кириллическая “а” и латинская “a” являются омоглифами?
Совпадающее начертание буквы на уровне шрифта?
2. 6th April 2023, 09:20 // Александр Венедюхин:
По кодам символов. Там, видимо, используют таблицы “схожести” для Unicode. При наведении курсора на символ, вызвавший подозрение, даже показывается какой код (номер) у этого символа и какой код у символа, считающегося похожим. Например, “Т” и “T” – это U+0422 (кириллическая) и U+0054 (латиница).
Написать комментарий