Есть ли символ" глиф не найден"?

предположим, что у нас есть текст, содержащий символ Юникода, который не может быть отображен, потому что наш шрифт не имеет соответствующего глифа. Обычно вместо этого отображается заполнитель, например прямоугольный блок (см. скриншот).

есть ли символ "глиф не найден", который надежно производит этот глиф? Я хотел бы написать что-то вроде "If the following text contains <insert character here> then you need another font..." в пользовательском интерфейсе.

кстати, я не говорю о � (замена символов). Это отображается когда символ Юникода не может быть правильно декодирован из потока данных. Он не обязательно создает один и тот же глиф:

enter image description here

7 ответов


нет, нет символа" глиф не найден". Различные программы используют различные графические презентации. Пустой узкий прямоугольник является обычным рендерингом, но не единственным. Это также может быть прямоугольник с вопросительным знаком или с кодовым номером символа в шестнадцатеричном виде.

поэтому лучше, например, отображать небольшое изображение персонажа вместе с самим персонажем, чтобы читатель мог сравнить их.


из спецификации Unicode:

U+25A1 □ БЕЛЫЙ КВАДРАТ

  • может использоваться для представления отсутствующей идеографии

  • U+20DE $⃞ объединение заключительного квадрата


символ глиф-не-найден задается механизмом шрифтов и шрифтом; для него нет фиксированного символа.


используйте не-символ, такой как U+10FFFF (в самом конце пространства Unicode), который 99,99% наверняка не будет найден в таблице cmap любого вменяемого шрифта. По крайней мере, ни один известный системный шрифт Windows не сопоставляет этот не-символ с глифом и маловероятным системным шрифтом Linux/Mac. Даже всеохватывающий шрифт последней инстанции (http://www.unicode.org/policies/lastresortfont_eula.html), похоже, не отображает его. Таким образом, пока нет официального символа" глиф не найден", определенного в Unicode, который будет сопоставляться .notdef глиф, вышеупомянутый не-символ на практике гарантированно отображает этот глиф, независимо от дизайна глифа в этом конкретном шрифте. Этот.notdef glyph (глиф id 0 в OpenType) может быть простым полым прямоугольником (стандартным), коробкой с x, коробкой с вопросительным знаком, иногда пустым (что является плохой практикой), а иногда странными вещами, такими как спирали (в Линотипе Палатино).


кроме того, (из того, что я слышал) японский использует знак GETA 〓 U+3013

CJK символы и знаки препинания


есть 3 возможных символа для глифа не найден.

Проверьте спецификацию Microsoft, тема формы .notdef символ, https://www.microsoft.com/typography/otspec160/recom.htm


Unicode использует следующие термины:

  • замена глифа
  • отсутствует символ
  • интерпретируемых но unrenderable символов

на Стандарт Unicode (10.0) не определяет, как они должны выглядеть, но предлагает в главе 5.3 [PDF] что реализации отображения

[...] отличительные символы, которые дают некоторые общие указания на их тип [...]

to отличайте их от"неназначенных кодовых точек". Они приводят несколько примеров:

Юникод запись в глоссарии говорит:

Он часто отображается как открытый или черный прямоугольник.


tl; dr: нет стандартизированного взгляда / глифа, это зависит от реализации. Чтобы помочь пользователям, реализации могут отображать глифы, указывающие, какой тип символ это то, что не может быть отображено.