Как понять, отобразился ли символ на веб-странице?

Всегда используй юникод в вебе, говорили они. Он везде и всегда отображается корректно, говорили они.

Проблема в том, что в некоторых сочетаниях систем-обновлений-браузеров-шрифтов-локалей символ не отображается. Вместо него - квадратик.
И ладно бы это были какие-нибудь иероглифы или эмодзи (которые вообще-то тоже нужны), но в наших реалиях есть проблемы например со знаком рубля (₽), который появился недавно и зависит от обновления системы. И даже если обновление есть - не отображается в FF на моих системах.

Итак, задача. Нужно протестировать, отобразился в браузере конкретный символ или нет.
Ну и дальше от этого строить логику - например, подгружать отдельный шрифт, где искомый символ точно вбит. Или картинку. Или наоборот, заменить картинку на символ, если он может нормально отображаться.

Сейчас я для этого использую жуткий костыль: рисую искомый символ 32 кеглем на canvas'е через context.fillText и проверяю цвет пикселей там, где у искомого символа они по идее должны быть закрашены.
Как правило срабатывает, хоть и не во всех случаях, а ещё нужно писать отдельный тест под каждый шрифт\символ из-за разного расположения пикселей.
При этом меня не оставляет ощущение неправильности происходящего.

Кто-нибудь знает более простой или менее костыльный способ проверки?
  • Вопрос задан
  • 2481 просмотр
Пригласить эксперта
Ответы на вопрос 1
aliencash
@aliencash
Партизан
Предлагаю создать свой шрифт, в котором будет только один требуемый вам символ (для экономии размера).
Даже разбираться с программами рисования шрифтов не надо - на днях на geektimes статья была geektimes.ru/post/246800
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы