如何在基于Debian的系统上找到字体具有字形的Unicode代码点?

Mar*_*air 10 ruby python unicode fonts fontconfig

从基于Debian的系统上的脚本语言(Python或Ruby),我想找到以下任何一种:

  1. 特定字体具有字形的所有Unicode代码点
  2. 所有具有特定Unicode代码点字形的字体

(显然,1或2可以从另一个派生,所以无论什么更容易都会很棒.)我在过去通过运行完成了这个:

fc-list : file charset
Run Code Online (Sandbox Code Playgroud)

...并根据来自fontconfig的代码解析每行末尾的输出, 但在我看来应该有一种更简单的方法.

(我不完全确定这是这个问题的正确StackExchange站点,但我正在寻找可以以编程方式使用的答案.)

nwe*_*hof 6

我会尝试任何FreeType 2语言绑定.这是一个Perl解决方案,用于列出字体的Unicode代码点Font::FreeType:

use Font::FreeType;
Font::FreeType->new->face('DejaVuSans.ttf')->foreach_char(sub {
    printf("%04X\n", $_->char_code);
});
Run Code Online (Sandbox Code Playgroud)