Я написав додаток Python3, який викликає fortune
та фіксує вихід для відображення в екрані сповіщення.
Деякі статки містять квадрати з шістнадцятковим числом, коли відповідний гліф не існує у поточному шрифті. Кожен квадрат є поданням шістнадцяткової кодової точки Unicode для відсутнього гліфа.
Я хочу видалити шістнадцятковий текст перед тим, як показувати користувачеві. Я сподівався знайти якийсь API Python, який дозволить мені перевірити текст, символ за символом, щоб визначити щось подібне char.isValidCodePoint()
чи подібне, але я не можу знайти його як такого.
Я знайшов можливе рішення, яке хотів дослідити тут, але після установки fonttools
через термінал моя програма Python не могла імпортувати fonttools/fontTools
.
Будь-які ідеї - або за допомогою API Python, або для виклику до терміналу?
Оновлення №1: з тих пір я зрозумів, що fonttools
зразок коду з наведеного вище посилання не працюватиме для мене, як це Python2. Я гадаю, що якщо fonttools
якимось чином можна було б використати, я міг би викликати інтерпретатора Python2 з мого сценарію Python3.
Оновлення №2: Після читання (див. Посилання нижче) я з тих пір знайшов, fc-match
але він не завжди може однозначно визначити шрифт, який використовується. Я отримую поточний шрифт у Python:
from gi.repository import Gio
fontName = Gio.Settings( "org.gnome.desktop.interface" ).get_string( "font-name" )
в результаті чого Ubuntu 11
. Передаючи цей результат pango-view
разом із шістнадцятковим символом, я отримую список шрифтів, у тому числі Ubuntu
. На мій погляд, якщо гліф НЕ був наданий шрифтом, шрифт не повинен з’являтися в результаті з pango-view
!
Список літератури: