#utf-8 #fonts #qml #roboto
Вопрос:
Моя установка:
- Qt 5.9.4
- система buildroot Linux
- процессор rockchip rk3288
- загрузочный скрипт в файле /etc/init.d
У меня есть qml для отображения некоторых символов utf8
// roboto font
FontLoader {
id: roboto
source: "qrc:/fonts/Roboto-Regular.ttf"
}
Text {
text: "The temperature is: u2103"
font.pixelSize: 24
font.family: roboto.name
}
Когда я запускаю приложение из командной строки (UART), шрифт отображается правильно.
Когда я перезагружаюсь и мое приложение запускается из загрузочного сценария. Символы utf-8 отображаются неправильно.
Я перепробовал всевозможные комбинации:
- Шрифт находится в файловой системе
- Шрифт находится в разных местах файловой системы
- различные шрифты (Монтсеррат, Авенир и т.д.).
- отображение шрифта на основе статуса загрузчика == Загрузчик шрифтов.Готов
Все с одинаковыми результатами. Я случайно наткнулся на это решение:
// japanese font
FontLoader {
id: jpFont
source: "qrc:/fonts/NotoSansJP-Regular.otf"
}
// roboto font
FontLoader {
id: roboto
source: "qrc:/fonts/Roboto-Regular.ttf"
}
Text {
text: "The temperature is: u2103"
font.pixelSize: 24
font.family: roboto.name
}
Это работает. Я даже не использую японский шрифт, но, похоже, он заставляет Roboto работать правильно.
- Почему мой шрифт загружает отладку utf8, но не при загрузке
- почему этот дополнительный шрифт волшебным образом исправляет это ?
Комментарии:
1. Я бы проверил переменную среды LANG (и LC_* тоже) в обоих случаях. Также список доступных шрифтов (с помощью QFontDatabase::applicationFontFamilies)