Почему стилизованный текст показывается пустыми квадратами (тофу)?
Одно сообщение — отправленное и полученное
Два скриншота ниже показывают одно письмо, стилизованное в ETeext и богатое символами с диакритикой. На телефоне, который его отправляет, всё выглядит идеально; на телефоне, который его получает, диакритика распадается на пустые квадраты.
Почему некоторые символы показываются квадратами?
На некоторых устройствах стилизованные символы могут появляться как маленькие пустые квадраты (или квадраты с крестиком, или знак вопроса). У этого явления есть название: его называют «тофу».
Слово идёт от сходства этих маленьких прямоугольников с кусочком тофу. Это не ошибка ETeext и не ошибка в твоём тексте: это просто значит, что устройство или приложение, отображающее текст «на стороне получателя», не имеет в своих шрифтах начертания запрошенного символа. Не зная, что рисовать, оно показывает прямоугольник-заглушку.
Это чаще случается на некоторых устройствах (иногда «китайских» или, шире, тех, чьи системные шрифты оптимизированы под другие алфавиты). Их шрифты идеально покрывают собственные системы письма, но могут не включать каждый экзотический стилизованный символ латинского алфавита — отсюда тофу вместо некоторых эффектов.
Иначе говоря: твой текст верен, но устройство на другом конце не может отобразить его полностью.
Технический раздел: почему появляется тофу (и как Безопасный режим его избегает)
Для любопытных — что происходит «под капотом».
Стили ETeext не меняют шрифт отображения (это была бы задача CSS): они меняют сами символы. Стилизованная жирная «a», например, — это не «a», одетая в форматирование, а отдельный символ Unicode, взятый из особого блока (математические буквенно-цифровые символы). Именно это позволяет этим стилям путешествовать по платформам, где нельзя менять шрифт.
Обратная сторона в том, что для отображения этих символов у принимающего устройства должно быть их начертание (глиф) в шрифтах. Если глифа нет, устройство показывает символ-замену — тот самый тофу. Чем более «экзотичен» (редок) символ, тем выше риск, что шрифт его не покрывает — а некоторые экосистемы устройств, оптимизированные под другие системы письма, покрывают их меньше.
Некоторые эффекты также нагромождают комбинируемые знаки: акценты или метки, наложенные на букву. И здесь результат зависит от способности устройства правильно их разместить; в плохо оснащённых средах результат может быть неидеальным.
Решение: Безопасный режим
ETeext включает Безопасный режим. Включи его перед стилизацией, и вместо рискованных символов ETeext переходит на стандартные буквы — присутствующие в абсолютно каждом шрифте. Твой текст остаётся читаемым на устройстве получателя ценой части визуального эффекта.
Это простой переключатель, который ты можешь включать в любой момент, в зависимости от ситуации.