Why Do Some Unicode Fonts Show as Boxes?
A name can look perfect in one bio and show as seven empty boxes on another phone. Nothing was deleted and nothing was broken. The other phone just couldn't draw those letters. Here's why it happens, which styles survive, and the 60-second test that tells you before you publish.
On one phone, a name in bold script reads normally. On another, the same bio shows as a row of empty boxes where the name should be. The second phone simply didn't have a drawing for those letters — that's the whole mystery.
First, the awkward truth: those aren't fonts at all
A real font is a file that tells a screen how to draw letters, and you can't paste a file into an Instagram bio or a Discord nickname — those fields take plain text only. So a "fancy font" generator cheats. It swaps each letter for a different character that happens to look styled. The bold B in 𝐁𝐨𝐥𝐝 isn't a B wearing a bold coat. It's a separate character — U+1D401, from Unicode's Mathematical Alphanumeric Symbols block — invented so mathematicians could use a bold B and a plain B to mean different things in the same equation.
That one fact explains every breakage in this article. Copy and paste carries characters, not styling, which is why the look survives the clipboard. But the screen at the other end still has to know how to draw each character you sent it. If it doesn't, you get the box.
The box has a name, and it's not "broken"
Type designers call it "tofu." Its technical name is the .notdef glyph — short for "not defined." Every font carries one: when the system asks for a character the font doesn't have, and no fallback font has it either, the font draws its .notdef instead. The shape varies — a plain rectangle, one with a question mark or an X, or on a Mac, a box with the hex code inside — but the meaning never changes: a character is here, and no picture exists for it.
A box is not damage, though: your text arrived intact. Copy that row of boxes onto a phone with the right font and the fancy letters reappear. That's also how you tell tofu apart from its lookalikes. A black diamond with a question mark (�, U+FFFD) means the bytes got mangled by wrong encoding, and the original text might be gone for good. A lone empty box in pasted text is often U+FFFC, left behind when an image or sticker got dropped during copy-paste. Three different boxes — and only the first is a font problem.
Why it works on your phone and not theirs
No phone ships with a font for every character. Unicode now holds more than 159,000 characters, while a typical system font covers a few thousand. When your phone meets a character its main font lacks, it walks a fallback chain — other fonts on the device, one by one, until something has the glyph. Only when the whole chain comes up empty do you see tofu.
So the same string renders differently on different phones because the chains are different. Apple, Google, Samsung, and Microsoft each ship their own font sets, update them on their own schedules, and trim them for storage — and budget Android phones have the smallest sets. Which is why "it works on my iPhone" is the least useful sentence in this whole debate.
Two more things stack the odds against fancy text. First, most styled alphabets sit above U+FFFF, outside the Basic Multilingual Plane, and older fonts simply stop at U+FFFF. Second, age matters most. Circled and fullwidth letters date from 1993 and live in practically every font ever shipped. The maths alphabets date from 2001. Filled bubble letters are newer still. Old characters are safe characters. Everything else is a bet on the other person's phone.
If you remember one thing: older characters break less
This list turns a vague worry into a yes-or-no decision, so it's worth checking before settling on a style.
- Safest — circled Ⓐ, fullwidth A, bold serif 𝐀, italic 𝐴, monospace 𝙰: old characters, in nearly every system font. Boring? A bit. But boring renders.
- Usually fine — script 𝒜, double-struck 𝔸: same 2001 block as bold, but minimal fonts sometimes skip them. Fine for a display name, risky for the one line that has to work.
- Risky — fraktur 𝔄, filled bubble 🅰: fraktur gets left out of slim font sets, and filled bubble letters double as emoji, so phones may draw coloured tiles instead of text. Two failure modes for the price of one.
- Riskiest — strikethrough, underline, zalgo, decorative frames: these aren't letters at all but combining marks stacked onto normal letters (U+0336 for a strike line). On many Android builds the mark detaches and shows as its own box, so you get h□e□l□l□o□. Zalgo looks incredible in the generator and like a keyboard accident everywhere else.
A single letter can break while the rest survives. The maths alphabets aren't clean 26-letter runs — some slots were left empty because the letter already existed elsewhere. Italic has no dedicated lowercase h (it borrows U+210E, the Planck constant symbol), and script borrows several capitals from an older block. A font can cover one block and not the other, so one letter in your name turns into a box while the rest looks fine. If your name has an h in it, test italic twice.
Fixing your own phone is the easy half
Work through these in order, testing after each step in a plain notes app on the same device.
- Update the operating system. On iPhone, Settings > General > Software Update; on Android, Settings > System > Software update. System updates are how new fonts arrive, and this alone clears most tofu.
- Update the app. If boxes appear in one app but not elsewhere on the same phone, that app's own font rendering is behind.
- Install a wide-coverage font on desktop. Google's Noto family — short for "no more tofu" — is free and covers more than 150 scripts. On Windows, install it through Settings > Fonts; on a Mac, through Font Book.
- On a website you run, declare UTF-8 and a real fallback stack. A missing
<meta charset="UTF-8">turns valid text into mojibake, and a stack ending in a generic family lets the browser keep searching instead of giving up at the first font.
What doesn't help: changing keyboard settings. This gets suggested constantly and it's wrong — a keyboard controls what you type, not what your screen can draw. Different system, different job.
The fix nobody wants to hear (because it's the only real one)
You cannot fix someone else's phone. No setting, app, or trick on your end puts a missing glyph onto a stranger's device. The only thing you control is the text you publish, so if boxes show up on other people's screens, change your text: drop to an older style from the list above, keep decoration to one line, and keep searchable words in plain letters. Our Instagram Story fonts guide and our TikTok fonts guide land on the same rule, for the same reason.
For the step-by-step paste process, including the 150-character counting trap, see our guide on how to change the font in your Instagram bio. Discord chat is a different system again — messages there render Markdown formatting, and our Discord text formatting guide covers every code that works.
Before you commit to a style, run the 60-second test: paste it into a note on the oldest phone in your house, or ask one friend on Android and one on iPhone to screenshot your profile. Sixty seconds, two screenshots, and you'll know more than any compatibility table can tell you.
Two lookalikes that aren't boxes at all
Your styled text turns plain after you save. That's not a font problem — the app normalized your text. Unicode's NFKC cleanup folds compatibility characters back to plain letters, so 𝐁, Ⓑ, and B all become B. Small caps (ᴀ) survive this folding, which is why they sometimes persist where other styles don't. If an app flattens your style, it only wants plain text in that field.
Your bubble letters turn into coloured tiles. A few enclosed letters — 🅰 🅱 🅾 🅿 and Ⓜ — also exist as emoji, and phones often pick the emoji look even when you wanted plain text. Adding the text presentation selector U+FE0E after the character asks for the plain form, though not every app honours it. The reliable fix is a different bubble style, or circled letters, which have no emoji twin.
Boxes mean a missing drawing, not broken text and not a bad app. Update what you control, test on a phone that isn't yours, and pick older characters for anything that has to read correctly everywhere. One styled word with the rest plain reads correctly on far more phones than a fully styled bio.
Umar
Founder, Format Studio
Umar builds Format Studio's free creator tools and writes the practical guides.
Frequently Asked Questions
Why do some Unicode fonts show as boxes on my phone?
Because no font on your phone contains a drawing for those characters. "Fancy fonts" are really Unicode characters from blocks like Mathematical Alphanumeric Symbols, and when every font in the fallback chain lacks the glyph, the system draws its .notdef placeholder — the empty box nicknamed tofu. The text itself is fine; the drawing is missing.
Why does my friend see boxes but I do not?
Your phones ship different font sets. Your phone has a font covering those characters and your friend's does not — most often an older or budget Android, an out-of-date OS, or an app with its own slim font bundle. The text is identical on both phones; only the drawings differ.
Can I fix boxes on someone else's phone?
No — you cannot add a glyph to a device you do not control. The fix on your side is to change the text: switch to an older, widely supported style like circled, fullwidth, or bold serif, and keep decoration to one line. Test on a friend's phone before committing to a style.
Why do emojis show as boxes on my phone?
Same mechanism, different block: new emoji are added to Unicode every year, and your phone only learns to draw them through OS updates. A friend on a newer OS sends an emoji your phone has no glyph for, and you see a box. Updating your OS — and the app, if the box appears in only one app — is the fix.
Why does only one letter in a word turn into a box?
The styled alphabets have holes: some letters were already encoded elsewhere, so Unicode left those slots empty rather than duplicating them. Italic has no dedicated lowercase h, and script borrows several capitals from an older block. A font covering one block but not the other draws a box for exactly that letter. Pick a style whose full alphabet your test phones render.
What is the difference between a box and a question mark in a diamond?
An empty box (tofu) means a valid character has no glyph on the device — the data is fine. The black diamond with a question mark (�, U+FFFD) means the bytes could not be decoded at all, usually an encoding mismatch, and the original text may be lost. Fix tofu with fonts or older characters; fix the diamond by finding where the encoding broke.
Related reading: once your text renders cleanly, picking the best Unicode font generator comes down to seven checks — honesty about what the tool does, a live preview of your own words, and a warning before you paste.
Test a Style Before You Post It
Generate bold, cursive, bubble and more — then run the 60-second test on a second phone before it goes live.