Мое приложение отображает строки, используя Pango, Cairo и GTK3. Некоторые из этих строк содержат специальные символы, в том числе один, не входящий в базовую плоскость Unicode. В Linux это только что сработало, но в Windows он не может найти специальные символы и вместо этого отображает поле неизвестного символа.
Я использую Roboto для текста, но он не включает эти символы. Используя трюк, я найдено здесь Я обнаружил, что в Linux основной fontconfig переключается на Symbolica или STIX.
FC_DEBUG=4 pango-view -q -t '{character}' 2>&1 | grep -o 'семейство: "[^"]+' | вырезать -c 10- | хвост -n 1
Я пытался установить эти шрифты на машину с Windows, но безуспешно.
На моем компьютере с Windows работает Mingw-w64, который поставляется с /etc/fonts
, содержащим файлы fontconfig, но они не Кажется, я делаю что-то не так. К сожалению, pango-view
, похоже, не обращает внимания на переменную окружения FC_DEBUG, поэтому я не могу понять, что она делает.
Как я могу указать fontconfig в Windows, где взять глифы для кодовых точек, которые Roboto не предоставляет?
Обновление: я установил AttrFallback для рассматриваемых строк, чтобы быть True, на тот случай, если сборки Pango обрабатывают это по-разному в Linux и Windows. Все равно не повезло.