How to List Installed Fonts That Support a Certain Character

fontsunicode

How can I find out which fonts on my system include coverage of a certain character, for example, U+2192?

I've tried looking in Character Map, but I don't see a way to query fonts by character, only characters by font.

Best Answer

May be there other tools but hb-shape gives some results, Example (\u2192, \u107, \u106 and \u2191 respectively):

$ hb-shape .fonts/Roboto-Light.ttf "→"
[NULL=0+498]

$ hb-shape .fonts/Roboto-Light.ttf "ć"
[cacute=0+1054]

$ hb-shape .fonts/Roboto-Light.ttf "Ć"
[Cacute=0+1313]

$ hb-shape .fonts/Roboto-Light.ttf "↑"
[NULL=0+498]

As you notice, available ones results return with their Unicode name Cacute otherwise NULL.

I have entered Unicode using Ctrl+Shift+u , or you may want this way for making shell script to loop through fonts:

$ hb-shape .fonts/Roboto-Light.ttf `echo -ne "\u2192"`
[NULL=0+498]

For reference, hb-shape is a test tool from HarfBuzz Project a Unicode text shaping engine.