Як дізнатися, який шрифт містить певний спеціальний символ?


19

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

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

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

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

Як дізнатися, який із встановлених шрифтів може відображати "символ"?


Якщо шрифт не розпізнається (дає вам порожнє поле), швидше за все, у вас не встановлений шрифт у вашій системі. Тому його потрібно встановити перед тим, як його можна буде використовувати.
CharlieRB

@CharlieRB шрифт буде встановлений. Я не можу вибрати шрифт у Inkscape, який не встановлений. Просто немає цього дуже рідкісного гліфа.
Румі П.

ДОБРЕ. Ви можете уточнити це у своєму запитанні; що у вас встановлений шрифт.
CharlieRB

1
Firefox може використовувати свій власний шрифт у Windows 7 та попередніх версіях, оскільки в цих системах немає шрифту для смайликів. Шрифт є <firefox>\fonts\EmojiOneMozilla.ttfі не встановлений у всьому світі
phuclv

Існує аналогічне запитання, на яке тут відповіли .
jdhao

Відповіді:


12

Спробуйте цю сторінку: www.Fileformat.info

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

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


1
І схоже, що на цій сторінці можна шукати шрифти і на вашому комп’ютері, використовуючи плагін Flash.
Yellowantphil

Дякую за відповідь, я завжди шукав рішення моєї помилки підтримки "Половина OTF половини 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.