Something nobody asked for but we'll do it anyway.
Tofu (named because it is usually white boxes) is what you see when there is no font support for the current glyph in your font stack, which can vary by family (serif/sans/mono) and application.
docs.microsoft.com/en-us/typograp…
Most of the time, what you see comes from the .notdef in one of your fontstack fonts. But, sometimes it is custom to the application.
The most common multi-platform tofu lately seems to be the ubiquitous question block.
Cute, but not very informative. Surprised Nintendo hasn't sent DMCA's to every font using it.
[image via @emojipedia]
⎣FF⎦
Hexagana. The hex code in a box. Usually not part of a font, but done procedurally in the application. Firefox text fields, for example.
There is a font to do this, though scripts.sil.org/cms/scripts/pa… for example.
A+. Very informative. If you have to tofu me, do this.
Last Resort. Originating on macOS as the bottom of the font stack, it would show a glyph representing each block.
Available here: unicode.org/policies/lastr… (by Michael Everson).
Not bad. Slightly more informative than all but Hexagana.
Bare question mark. Common on very old systems. Rarer now. Pre-Uncode Windows used to use it as a combination .notdef and Replacement Character.
Boring. Confusing. Hate.
� FFFD REPLACEMENT CHARACTER
The source bytes did not reference Unicode codepoints.
Latin-1 parsed as UTF-8, well-formed references outside UTF-8's scope (Overbyte encoding/>10FFFF/split surrogates). etc
It supplants/replaces the illegal bytes. Lossy.
⯑ 2BD1 UNCERTAINTY SIGN
The most important one is U+FFFE (inverse BOM).
There is another type of anti-tofu. When a codepoint has no glyph by default, it can appear as a dotted outline in the charts. This (mostly) occurs with Whitespace, Control Codes, and stuff with the property "Default_Ignorable".
unicode.org/Public/12.0.0/…
unicode.org/faq/unsup_char…