Is there a “glyph not found” character?

ⅰ亾dé卋堺 提交于 2019-11-28 09:00:48
Jukka K. Korpela

No, there is no “glyph not found” character. Different programs use different graphic presentations. An empty narrow rectangle is a common rendering, but not the only one. It could also be a rectangle with a question mark in it or with the code number of the character, in hexadecimal, in it.

So it is better to e.g. display a small image of the character along with the character itself, so that the reader can compare them.

From the Unicode Spec:

U+25A1 □ WHITE SQUARE

  • may be used to represent a missing ideograph

  • U+20DE $⃞ combining enclosing square

The glyph-not-found character is specified by the font engine and by the font; there is no fixed character for it.

Use a non-character like U+10FFFF (at the very end of the Unicode space) which is 99.99% certain to not be found in the cmap table of any sane font. At least no known Windows system font maps that non-character to a glyph, and highly unlikely any Linux/Mac system font either. Even the all encompassing Last Resort font (http://www.unicode.org/policies/lastresortfont_eula.html) doesn't appear to map it. So while there is no official "glyph not found" character defined in Unicode that will map to the .notdef glyph, the above non-character is in practice guaranteed to display that glyph, whatever the glyph design is in that particular font. The .notdef glyph (glyph id 0 in OpenType) may be a simple hollow rectangle (standard), box with x, box with question mark, blank occasionally (which is bad practice), and sometimes bizarre things like spirals (in Palatino Linotype).

Also, (from what I've heard) Japanese uses the GETA MARK 〓 U+3013

CJK Symbols and Punctuation

Unicode uses these terms:

  • replacement glyph
  • missing glyph
  • interpretable but unrenderable character

The Unicode Standard (10.0) does not define how they have to look, but it suggests in chapter 5.3 [PDF] that implementations display

[…] distinctive glyphs that give some general indication of their type […]

to distinguish them from "unassigned code points". They give some examples:

The Unicode glossary entry says:

It often is shown as an open or black rectangle.


tl;dr: There is no standardized look/glyph, it’s up to the implementation. To help users, implementations could display glyphs that indicate what type of character it is that can’t be displayed.

There are 3 possible characters for glyph not found.

Check in Microsoft specification, topic Shape of .notdef glyph, https://www.microsoft.com/typography/otspec160/recom.htm

There is a notdef character that means the glyph is not found. But it has no charcode. You can use the charcodes of controll characters to insert a notdef character (like "", U+0002)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!