web-dev-qa-db-ja.com

特定の特殊文字が含まれているフォントを確認するにはどうすればよいですか?

Unicodeには、ほとんどのフォントでは表示できないいくつかの特殊な「文字」が含まれています。そのうちのひとつ、ビデオカメラを使いたいです。

そのようなキャラクターは確かに存在し、コードポイントU + 1F4F9を持っているようです。 http://graphemica.com/%F0%9F%93%B9 にアクセスすると、WebページとFirefoxのURLバーの両方に表示されます。そのため、グリフを含むフォントがシステムに少なくとも1つあると想定しています。

url with video camera glyph displays correctly

しかし、それをInkscapeに貼り付けると、Arialのように通常多くのグリフを持つフォントを選択しても、不明な文字の空のボックスが表示されます。

インストールしたどのフォントが「文字」を表示できるかを知るにはどうすればよいですか?

22
Rumi P.

このページを試してください:www.Fileformat.info

http://www.fileformat.info/info/unicode/char/1f4f9/fontsupport.htm

そこで、Unicode文字を照会して、サポートするフォントのリストを取得できます。

15

次のPythonスクリプトは、文字を含むすべてのフォントを印刷します(私のLinuxボックスでテスト済み)。

import unicodedata
import os

fonts = []

for root,dirs,files in os.walk("/usr/share/fonts/"):
    for file in files:
       if file.endswith(".ttf"): fonts.append(os.path.join(root,file))


from fontTools.ttLib import TTFont

def char_in_font(unicode_char, font):
    for cmap in font['cmap'].tables:
        if cmap.isUnicode():
            if ord(unicode_char) in cmap.cmap:
                return True
    return False

def test(char):
    for fontpath in fonts:
        font = TTFont(fontpath)   # specify the path to the font in question
        if char_in_font(char, font):
            print(char + " "+ unicodedata.name(char) + " in " + fontpath) 

test(u"????")
test(u"????")

私のマシンでは、これは次のようになります:

???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Bold.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Oblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-BoldOblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSansCondensed.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Oblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-BoldOblique.ttf
???? SMILING CAT FACE WITH OPEN MOUTH  in /usr/share/fonts/truetype/dejavu/DejaVuSans-BoldOblique.ttf
???? CAT  in /usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf
5

自分で同じ問題に遭遇したとき、私は質問を完全に理解しました:

1つのプログラムがコンテンツを正しく表示するため、コンピューターにフォントがインストールされていることを知っていますが、別のプログラムは、適切に表示するために使用するフォントがわからないため、同じコンテンツを空白のボックスとして表示します。また、すべてのフォントをスクロールして、必要な文字が含まれているフォントを探す必要はありません。

コピーしたテキスト/シンボルを空白のMicrosoft Wordドキュメントに貼り付けてみてください。 Wordが貼り付けられたテキストのデフォルトで[ソースのフォーマットを維持]に設定されている場合、コンテンツは正しく表示されます。その場合、コンテンツを選択すると、Wordフォントメニューに、必要な文字を含むコンピューター上のソースフォントが表示されます。確かに、他にもあるかもしれませんが、少なくともこれは、適切なフォントをすばやく簡単に見つける方法です。

4
Owen