I have fielded many versions of this question: “What does the emoji with an X in a large rectangle mean?” or “When texting, what is the meaning of the symbol with an “X” inside a tall rectangle?”
That it is an X-in-a-tall-rectangle is just the most common rendition, although not the only possible one, for the “.notdef”. A variety of font-specific notdefs are shown above.
It is not an emoji, but you can get it instead of an emoji or other unusual character. A notdef (undefined glyph) is what gets displayed when a character is specified in text, but your current font does not support that character. Most commonly it happens with a newer emoji, but it could be in an unusual language or a new currency symbol, or… well, something unusual.
This problem is not unique to texting, but applies to all kinds of displays of text on all devices, whenever the needed character is not available in the available font(s).It is an indicator for a “missing character,” which stands in for an emoji or any other character that your device or current font doesn’t have a glyph to display it with. This makes it a very special symbol.
(A particularly hefty notdef, that I designed for one of my typefaces. The font is quite bold, so I made the outer box of the notdef quite bold to match. How font-specific should a notdef be? As I get older and hopefully wiser, I gravitate towards what seems to be a near-concensus view that it should contrast with the font, so users realize something is wrong. That means matching weight is actually a bad idea. Oops.)
This is more common when you are receiving rather than sending a text, since you are unlikely to enter a character that you don’t see correctly. But it can happen when you try to view a web page, or copy text from a source and paste it somewhere that it comes out in a different font.
Often there is some kind of font fallback available; your phone (or computer) tries to display unusual characters and emoji in some other font, that supports those characters. That is why in some situations you can see a name and some unusual character in the name is displayed in a different font than the rest of the name. But phones have limited storage space, and whether it is a phone or computer, there are over 150,000 characters defined in Unicode, with more added every year.
So when your phone (or web browser or computer) runs out of ideas on how to display a character? You get a notdef.
If you copy and paste a notdef on your computer or into a text or email you are sending, you will probably be copying some specific emoji or obscure character. That means that some other person who receives that (or later views the same file on their computer) may well see something else entirely!
Even if they do see a notdef, it may look different, depending on the font they see it in. Here are the most common/standard approaches to the notdef, as defined in the OpenType specification.
The thinner box creates a very different appearance compared to the X-in-a-box approach, doesn’t it? Note that these are general approaches, not precise glyph outlines that a font maker would use directly.
The plain rectangular box is the style of notdef that was common in PostScript Type 1 fonts, back in the 1980s–90s. But it has fallen out of favor. I believe the main reason for this is that as a shape it is not as distinctive, and hence more easily missed by someone looking over some text.
That plain box is the origin of the slang term “tofu” for the notdef, over some notional idea that it resembled a piece of tofu. I originally thought Google staff invented this slang, as the first time I remembered seeing it was in publicity for Google’s “Noto” universal font set (“Noto” being short for “no tofu”!). But my font colleague Denis Moyogo Jacquerye pointed to this thread on the Unicode mailing list in spring 2009, and says it was one of a number of references around that time. John Hudson seconds encountering the “tofu” term in Unicode circles, so I may have been hasty in assuming it was a Google invention.
The question-mark-in-a-box is used in many of Microsoft’s fonts, such as Calibri. Note how the question mark inside the notdef is in the style of the font—it isn’t just a generic one. This style was invented by John Hudson during the development of Calibri and the other so-called “ClearType fonts,” that shipped in January 2007.
A plain rectangular box was the style of notdef that was common in PostScript Type 1 fonts, back in the 1980s–90s. But it has fallen out of favor. I believe the main reason for this is that as a shape it is not as distinctive, and hence more easily missed by someone looking over some text and trying to spot errors and glitches. When I was at Adobe, we went from the empty box to the X-in-a-box style as part of our transition from PostScript Type 1 to OpenType, from 1999–2003.
HOW DO I GET THE RIGHT CHARACTER INSTEAD?
Updating to the latest OS for your phone (or computer) usually also updates your Unicode and emoji support and system fonts. If the problem is in an app that has its own Unicode/emoji/fonts, then updating that app may help.
Many apps and OSes will use “fallback fonts” when the current font does not support a needed character. In that case, the above advice is good: you need better support from some core system font.
(This was originally written for Quora, but as Quora continues to turn to garbage, one of my answers on this, despite having the most upvotes, was made invisible by the system for unclear reasons. So I have merged my answers to two similar questions into one, and posted it here.)