Как я могу узнать в чистом javascript, не могут ли некоторые символы отображаться шрифтом?

#javascript #react-native

#javascript #react-native

Вопрос:

Браузеры очень умные. https://css-tricks.com/css-basics-fallback-font-stacks-robust-web-typography / Они могут сами определить, какие символы не могут быть отображены фактическим шрифтом, и отобразить символы с помощью резервного копирования.

К сожалению, у нас нет такой сообразительности в чистом JS или фреймворках, таких как React Native: https://github.com/facebook/react-native/issues/32396

Поэтому я должен сам создать это поведение для своего приложения react native.

Как я могу проверить в чистом javascript, не может ли шрифт отобразить определенный символ (например, кандзи), чтобы я мог сам отобразить этот конкретный символ с помощью резервного шрифта?

(Я могу узнать, какой шрифт нужен символу с помощью unicode, но я не хочу делать это при каждом рендеринге текста, потому что это потребляло бы ресурсы (верно? или это нормально делать? представьте, что текст содержит 500 символов, это будет 500 вызовов функций)). в любом случае, я думаю, что это лучший подход (правильно ли это), чтобы делать этот материал в юникоде только onError

Итак, как можно узнать в чистом javascript, не могут ли некоторые символы отображаться шрифтом? Я в основном хочу получать уведомления об ошибке, полезной нагрузкой должна быть позиция символов в строке.

Я знаю, что мог бы выяснить это, если бы я регулярно проверял поддерживаемый юникод моим шрифтом на соответствие юникоду текста, но это снова потребляло бы ресурсы. Я хочу просто отобразить текст в React Native, а затем onError перехватит ошибки и отобразит нерабочие символы другим рабочим резервным шрифтом.

заранее спасибо!!

Комментарии:

1. Я думаю, вам следует объединить шрифты вручную с помощью fontforge или что-то в этом роде.