guide
Why Fancy Text Turns Into Boxes (□) — and How to Stop It
Updated · 21 July 2026
You paste a carefully styled name into your profile, and someone tells you it shows up as a row of empty rectangles. The rectangle has a nickname among typographers: tofu, because that is what it looks like. It is one of the most common complaints about fancy text generators, and it is entirely predictable once you know what causes it.
What tofu actually is
A box, or sometimes a question mark in a diamond, is a font's way of saying it has no drawing for the character it was asked to display. The text is not corrupt, nothing was lost in the copy, and re-copying it will not help. The character arrived intact — the device just has no picture for it.
This is why the same text can look perfect on your phone and broken on someone else's. You are not seeing different text; you are seeing different fonts.
Why fonts run out of characters
Unicode defines well over a hundred thousand characters. No font contains them all, and no device ships with a font collection that covers everything either. System fonts cover the characters their users are statistically likely to need, plus a long tail of common symbols, and stop there.
The gaps are predictable. Recently added emoji are missing from devices that stopped receiving updates before they were standardised. Rare decorative blocks were never a priority for anyone's font budget. Combining marks — the characters that add strokes, dots and waves to the letter before them — depend on the font supporting both the base letter and the mark together, which is a stricter requirement than it sounds.
Which characters are safe
Anything that has been in Unicode since the early days and is used in ordinary writing is effectively universal: hearts (♡♥), stars (★☆), arrows (→←), geometric shapes (●■), Greek letters, currency signs, and the whole range of standard punctuation. These come from blocks that every system font implements.
The risky end of the spectrum is easy to spot too: filled circled numbers (❶), the newest emoji, elaborate multi-character kaomoji, and heavily decorated combining sequences. If a character looks unusual to you, it is probably unusual to a font as well.
Among the styled alphabets, the mathematical families — bold, italic, bold italic, script, double-struck — have the best support, because they are used in real mathematical typesetting and fonts take them seriously. The novelty styles built from squared, negative circled or rarely used blocks are the first to fail.
Devices and in-app browsers differ
Even when a character renders everywhere, it will not look identical. iOS, Android, Windows and macOS all draw the same code point with their own fonts, so weights and proportions vary. Apps add another layer: text inside Instagram, TikTok or a messaging app may be rendered with a bundled font rather than the system one, and in-app browsers are notorious for having the narrowest coverage of all.
In practice, older Android builds and in-app browsers are where problems concentrate. If your audience skews toward either, be conservative.
A four-step check
First, preview your text in the app you are actually going to publish it in, not in the tool you made it with. Second, if anything shows as a box, swap that character for a more basic one from the same family — an outlined heart instead of a colour emoji heart, a plain star instead of an ornamental one. Third, prefer text symbols over emoji wherever a text version exists. Fourth, keep decoration off anything critical: your name, your handle and your call to action should be readable even if every decorative character around them fails.
Follow those four and tofu essentially stops happening. The underlying rule is simple — the more ordinary the character, the more places it works — and it costs you very little, because the ordinary characters are the good-looking ones anyway.