Как определить информацию о шрифте и макете для символа Юникод?

Я хочу визуализировать символы Unicode в приложении, и у меня есть приблизительное представление о том, как я могу это сделать для стандартных латинских символов с помощью freetype. Однако, для других языков, которые имеют разные макеты и формы, я не уверен, как перейти от набора символов, которые я получаю в кодированной строке UTF-8 к:

  1. Выбор подходящего шрифта для отображения символов

  2. Подбор правильной раскладки для персонажей (LTR, RTL, TTB)

Содержатся ли эти данные в самих символах Юникода (я не уверен, как еще приложения, такие как веб-браузеры, могли бы выяснить, как отображать текст)?

Как определить точки 1 и 2 для данного символа Юникода? У Freetype есть отличная документация и довольно много говорится об использовании разных макетов, но я не представлял, как вы будете извлекать указанную информацию из самих персонажей.

Я также быстро взглянул на Harfbuzz, но не смог найти никакой документации. Существует пример, показывающий, как настроить и использовать Harfbuzz для разметки некоторых языков с помощью Freetype, отрисовывающего глифы, но пример явно передает информацию о разметке, шрифте и языке Harfbuzz.

Что вы делаете, когда не знаете этого заранее?

Это для мобильного приложения, и в идеале используемые библиотеки / решения должны иметь разрешительную лицензию.

1

Решение

Кодовая точка символа Unicode кодирует только символ
сам; он не дает никакой информации относительно используемого шрифта,
ни макет, ни на самом деле ничего другого. Получить информацию
Что касается макета и т. д., Unicode предоставляет ряд файлов,
такие как UnicodeData.txt, который вы можете скачать и использовать. Как
для шрифтов каждый шрифт должен содержать файлы дескрипторов некоторых
сортировать с такими вещами, как ширина, высота и глубина каждого
персонаж; эти файлы также могут быть использованы для определения
символы, которые поддерживает шрифт.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]