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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.