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


问题内容

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

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

(显然,1或2可以从另一个派生,所以更简单的方法就很棒。)我过去通过运行以下操作来完成此操作:

fc-list : file charset

…,并根据fontconfig中的这段代码在每行的末尾解析输出,
但是在我看来,应该有一种更简单的方法来执行此操作。

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


问题答案:

我会尝试任何FreeType
2语言绑定
。这是一个Perl解决方案,它使用以下命令列出字体的Unicode代码点Font::FreeType

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