[Unicode]  Frequently Asked Questions Home | Site Map | Search

Display of Unsupported Characters

Q: How should characters be displayed if the rendering system doesn't fully support them?

A: There are three main options, depending on the type of character involved. Some should not display at all (zero-width invisible characters); some should display as a visible (but blank) space; and some should be displayed with one or more generic glyphs, often referred to as "missing glyphs" or a ".notdef glyph".

Q: Which characters should be displayed as a visible but blank space?

A: This is the easy one: all the characters that have the White_Space property, also generically known as “whitespace characters”. This set includes SPACE, of course, but also such characters as the tab control character, NO-BREAK SPACE, LINE SEPARATOR, and so on. For the full list, see the White_Space values in PropList.txt.

Q: Which characters should be displayed as invisible, if not supported?

A: All default-ignorable characters should be rendered as completely invisible (and non advancing, i.e. "zero width"), if not explicitly supported in rendering. These include:

  • cursive joiners (U+200C ZWNJ, U+200D ZWJ)

  • bidirectional format controls (e.g. U+200E LEFT-TO-RIGHT MARK)

  • the soft hyphen (U+00AD SOFT HYPHEN)

  • word joiners (U+2060 WORD JOINER, also U+FEFF ZWNBSP)

  • the zero width space (U+200B ZERO WIDTH SPACE)

  • invisible math operators (e.g., U+2061 FUNCTION APPLICATION)

  • Jamo filler characters (e.g., U+115F HANGUL CHOSEONG FILLER)

  • variation selectors

Q: Does this include unsupported variation selector sequences?

A: Yes,the expected rendering behavior for the sequence of character plus a variation selector (C+VS) is specified as follows:

Q: Which characters should be displayed with a missing glyph, if not supported?

A: All characters other than whitespace and default-ignorable characters.

Note that recommended practice is to provide different missing glyphs for characters to give the user some indication of the type of character which is missing a glyph. For more information see the text under "Interpretable but Unrenderable Characters" in Section 5.3, Unknown and Missing Characters, and see the Last Resort Font.

Q: How does the recommendation not to give any visible display for a subset of default ignorable code points affect font design?

A: Fonts are really best viewed in the context of a whole rendering system, since other parts of that system may handle various aspects of rendering. Where a font is being designed for a rendering system that does not handle invisible characters (such as variation selectors), then the best glyph for them — in the absence of other support — is a zero-width invisible glyph.

Q: Does that mean that a font can never display one of these characters?

A: No. Rendering systems may also support special modes such as “Display Hidden”, which are intended to reveal characters that would not otherwise display. Fonts can contain glyphs intended for visible display of default ignorable code points that would otherwise be rendered invisibly when not supported.