Where is "tofu" for "font fallback box glyph" coming from? [duplicate]

Seems to be a possible term of art for font foundries. From the site "Typing Around the World":

Have you ever visited a website on your phone or tablet, and seen square boxes instead of the language you were hoping to see? Among language computing professionals, these square boxes are commonly known as tofu – yes, those yummy squares of bean curd common in East Asian and South East Asian cuisine!


The term Japanese “tofu” (that reminds of the light square food) is used because it is a form of the Japanese “mojibake” which is a name used for similar characters in computer encoding.

Tofu cubes
Tofu food.

Wikipedia page showing “tofu”
Tofu in computer encoding.

Tofu:

  • Slang for the empty boxes shown in place of undisplayable code points in computer character encoding, a form of mojibake

Mojibake (文字化け?) (IPA: [mod͡ʑibake]; lit. “character transformation”):

  • from the Japanese 文字 (moji) “character” + 化け (bake, pronounced “bah-keh”) “transform”, is the garbled text that is the result of text being decoded using an unintended character encoding. The result is a systematic replacement of symbols with completely unrelated ones, often from a different writing system.

(Wikipedia)


Google and Adobe, who are jointly involved in one of the largest co-ordinated efforts to create a pan-Unicode font family - the Noto fonts mentioned in your question - use "tofu" or "tofu-like blank" to refer to a glyph with a rectangular outline reminiscent of a block of tofu.

Google:

When text is rendered by a computer, sometimes characters are displayed as "tofu". They are little boxes to indicate your device doesn’t have a font to display the text. (Source)

Adobe:

[My] long time manager, David Lemon, is the person who originally designed this glyph, which was meant to convey a clearer “glyph not available” message than a blank or tofu-like shape. (Source)

MediaWiki developer Santosh Thottingal has helpfully defined "tofu" in relation to the OpenType specification:

What is tofu?

It is a glyph inside fonts with the glyph name .notdef as per Opentype specificaiton. http://www.microsoft.com/typography/otspec/recom.htm says "The .notdef glyph is very important for providing the user feedback that a glyph is not found in the font. This glyph should not be left without an outline as the user will only see what looks like a space if a glyph is missing and not be aware of the active font's limitation. It is recommended that the shape of the .notdef glyph be either an empty rectangle, a rectangle with a question mark inside of it, or a rectangle with an “X”. Creative shapes, like swirls or other symbols, may not be recognized by users as indicating that a glyph is missing from the font and is not being displayed at that location." (Source)


Displaying the hex codes of a glyphless character in a bordered or borderless rectangular space long predates the use of the slang "tofu". The technique originated in late 1990 with the OS/2 1-2-3/G team at Lotus Development Corporation while internationalizing the product for Japan. At that time it was referred to as "hexagana".

The "hexagana" technique fell out of use decades later because it required developers to write code to handle characters for which a glyph was not found in the selected font. Agile development no longer afforded the time to implement such niceties.