从Ubuntu上的Font * .ttf文件获取受支持的Unicode范围


9

我的Ubuntu机器上有一些'ttf'格式的字体。

我想知道这些字体的一些元数据,关于那些字体文件支持哪些unicode范围和哪些非unicode代码页。

我该怎么办?

补充1:忘了提一下,我想获取数百种字体的那些信息,所以我需要某种可以自动实现的终端实用程序

Answers:


8

fc-query可以显示支持的unicode字符集。我不知道其他代码页。

例如,fc-query /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf在我的Debian上显示如下:

…
charset: 
    0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
    0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 008873ff
…

它显示了受支持的字符范围,尽管它不属于它属于哪个块(您必须知道哪个范围属于哪个块)。

例如,对应于U + 0060-U + 007F的第四列0000具有十六进制值7fffffff。它的值为0111 1111 1111 1111 1111 1111 1111 1111,其中最右边的是U + 0060,最左边的是U + 007F。这表示此字体不支持U + 007F。

您可能需要编写一个脚本,对.NET提供的信息进行按位操作fc-query

P / S:我最喜欢的unicode信息访问网站是FileFormat.Info


在哪里可以找到有关哪个范围属于哪个块的信息?
akaihola 2013年

啊,行号给出了代码点最左边的十六进制数字,位在位字段中的位置给出了最右边的两个十六进制数字。对?
akaihola

1

我建议FontForge。在Ubuntu的软件包管理器中,它的格式为fontforge


是的,我发现这个PROGRAMM -但据我所知它只有GUI界面,但我需要终端,来的Automize这件事情
ShockwaveNN

@ShockwaveNN:好吧,那么在您的问题中这样说。如果您陈述自己的实际问题,则获得适当答案的机会就会增加。
Daniel Andersson

1

注意任何发现此..

fc-query在字符集输出上不是100%可靠的。

例如,dafont.com上的Yogafont会显示一个空字符集,尽管其中确实包含字符。

$ fc-query yogafont.TTF
Pattern has 20 elts (size 32)
    family: "Yogafont"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "Yogafont"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(i)(s)
    width: 100(i)(s)
    spacing: 100(i)(s)
    foundry: "unknown"(s)
    file: "yogafont.TTF"(s)
    index: 0(i)(s)
    outline: FcTrue(s)
    scalable: FcTrue(s)
    charset: 
(s)
    lang: (s)
    fontversion: 0(i)(s)
    fontformat: "TrueType"(s)
    decorative: FcFalse(s)

其中带有绘图的其他字体(例如WW1)显示的字符集有限。

$ fc-query WW1-A___.TTF 
Pattern has 19 elts (size 32)
    family: "WW1  A"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "WW1  A"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(i)(s)
    width: 100(i)(s)
    foundry: "unknown"(s)
    file: "WW1-A___.TTF"(s)
    index: 0(i)(s)
    outline: FcTrue(s)
    scalable: FcTrue(s)
    charset: 
    0000: 00000000 00000001 00000000 0001fffe 00000000 00000000 00000000 00000000
(s)
    lang: (s)
    fontversion: 65536(i)(s)
    fontformat: "TrueType"(s)
    decorative: FcFalse(s)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.