Есть ли символ "глиф не найден"? - программирование
Подтвердить что ты не робот

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

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

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

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

enter image description here

4b9b3361

Ответ 1

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

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

Ответ 2

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

U+25A1 □ WHITE SQUARE

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

  • U+20DE $⃞ объединение замкнутого квадрата

Ответ 3

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

Ответ 4

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

Ответ 7

Юникод использует эти термины:

  • замена глифа
  • отсутствует глиф
  • интерпретируемый, но непередаваемый символ

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

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

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

Юникод Словарь глоссария говорит:

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


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