Как узнать, какой шрифт содержит определенный специальный символ?

19

Юникод содержит несколько специальных «символов», которые не отображаются большинством шрифтов. Я хочу использовать один из них, видеокамеру.

Кажется, что такой символ действительно существует и имеет кодовую точку U + 1F4F9. Когда я захожу на сайт http://graphemica.com/%F0%9F%93%B9 , я вижу его как на веб-странице, так и в адресной строке Firefox. Поэтому я предполагаю, что у меня есть хотя бы один шрифт в моей системе, который содержит глиф.

URL с глифом видеокамеры отображается правильно

Но когда я вставляю его в Inkscape, я получаю пустое поле для неизвестного символа, даже если я выбираю шрифт, который обычно имеет много символов, например, Arial.

Как узнать, какой из установленных мной шрифтов может отображать «символ»?

Руми П.
источник
Если шрифт не распознан (что дает вам пустое поле), скорее всего, у вас не установлен шрифт в вашей системе. Поэтому вам нужно установить его, прежде чем его можно будет использовать.
CharlieRB
@CharlieRB шрифт будет установлен. Я не могу выбрать использование шрифта в Inkscape, который не установлен. У этого просто нет этого очень редкого символа.
Руми П.
OK. Вы можете уточнить это в своем вопросе; что у вас установлен шрифт.
CharlieRB
1
Firefox может использовать свой собственный шрифт в Windows 7 и более ранних версиях, потому что в этих системах нет шрифта для emoji. Шрифт <firefox>\fonts\EmojiOneMozilla.ttf
включен
Существует аналогичный вопрос , который был дан ответ здесь .
августа

Ответы:

12

Попробуйте эту страницу: www.Fileformat.info

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

Там вы можете запросить символы Unicode и получить список поддерживаемых шрифтов.

Вернфрид Домшайт
источник
1
И похоже, что эта страница может искать шрифты и на вашем компьютере, с помощью плагина Flash.
Йеллоантфил
Спасибо за ответ, я искал решение для моей ошибки поддержки "Half OTF half TTF" для VS теперь навсегда.
Тейлор
4

Я полностью понимаю вопрос, поскольку сам столкнулся с той же проблемой:

Вы знаете, что на вашем компьютере установлен шрифт, потому что одна программа отображает содержимое должным образом, а другая программа отображает то же содержимое, что и пустое поле, потому что она не знает, какой шрифт использовать для правильного отображения. И вы не хотите прокручивать все шрифты, чтобы найти тот, который содержит нужный вам символ.

Попробуйте вставить скопированный текст / символ в пустой документ Microsoft Word. Содержимое должно отображаться правильно, если для Word установлено значение «Сохранить исходное форматирование» по умолчанию для вставляемого текста. Если это так, выберите содержимое, и меню шрифтов Word покажет вам исходный шрифт на вашем компьютере, который содержит необходимый символ. Конечно, могут быть и другие, но, по крайней мере, это быстрый и грязный способ найти подходящий шрифт.

Оуэн
источник
В Linux то же самое можно сделать с помощью Writer.
Артур Зенниг
4

Следующий скрипт 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
Мартин Монперрус
источник