Шрифты Юникода и настоящие шрифты
Почему «красивые шрифты», которые вы копируете и вставляете, вовсе не шрифты, и что эта разница значит на практике.
Шрифт — это рисунок, а не символ
Настоящий шрифт — это файл, который объясняет устройству, как рисовать символы. Буква A остаётся буквой A, набрана она Helvetica или Times New Roman: меняется только форма. Смените шрифт — и вместе с ним изменится каждая A на странице.
Начертания на этом сайте устроены наоборот. Они не меняют то, как рисуется символ; они подменяют его совершенно другим символом, который случайно похож на стилизованную A. Жирная «𝐀» — это не буква A жирным шрифтом. Это U+1D400, MATHEMATICAL BOLD CAPITAL A — отдельный символ со своей кодовой точкой.
Почему разница важна
Именно потому, что это символы, а не форматирование, они переживают копирование и вставку. В описании профиля в Instagram нет кнопки «жирный», но текст он принимает, поэтому вставка U+1D400 работает там, где форматирование было бы срезано.
Это же свойство и порождает проблемы. Текст изменён навсегда, а не оформлен, и потому тянет за собой последствия, которых у форматирования не бывает.
- Поиск его не находит. Поиск по вашему имени не найдёт 𝓎𝑜𝓊𝓇 𝓃𝒶𝓂𝑒.
- Программы чтения с экрана могут читать его по одному символу, пропускать или произносить официальное юникодовское имя каждого символа.
- На устройствах без нужных символов появляются пустые квадратики.
- Некоторые площадки просто отклоняют такие символы или удаляют их — особенно в никнеймах.
Откуда взялись эти символы
Большинство попало в Юникод ради математики. Математику нужно отличать жирный вектор от курсивного скаляра, потому что в математике само начертание несёт смысл. Юникод закодировал эти различия отдельными символами в блоке «Математические алфавитно-цифровые символы».
Использовать их для украшения — это применение не по назначению, которого Юникод никогда не предполагал, и именно поэтому поддержка такая неровная, а средства доступности справляются с ними так плохо.