Why Emoji Don't Display — Boxes, Question Marks and Flags on Windows
Someone sends you a message and it contains a box □. Or a diamond with a question mark �. Or plain letters RU where a country flag should be. The sender is sure they sent a nice emoji, you see junk, and neither of you knows what broke. Relax: nothing broke — that's how the emoji system works. Let's diagnose every kind of garbage character, its cause and its cure.
A box □ means your device doesn't know that character — usually the emoji is newer than your system. The cure is updating the OS or the app. Country flags shown as letters (RU, US) are a special case: Windows deliberately doesn't draw flag emoji, and no setting fixes it. � means the character got corrupted in transit by an encoding error.
How an emoji reaches your screen
The quick mechanics (full story in why emoji look different everywhere): an emoji is a Unicode character code, and the picture is drawn by your system's font (Apple Color Emoji, Segoe UI Emoji, Noto). The consequence: if the font has no artwork for an incoming code, there's nothing to show — the system draws a placeholder. The placeholder's look is your diagnosis.
The box □: the system doesn't know the character
Diagnosis. An emoji from a fresh standard release arrived, and your OS predates it. New emoji ship every year (Unicode updates in the fall; platforms roll out artwork over the following year), so the newest symbols reliably turn into boxes for everyone who hasn't updated.
Treatment:
- Update the system — new emoji sets arrive with iOS, Android, Windows and macOS updates. The only real cure.
- Update the app. Some messengers (Telegram, WhatsApp) draw emoji with their own sets and show new ones even on old systems.
- Device no longer updates? Then honestly — no fix: without artwork in the font, the character can't render. You can at least see what the mystery emoji looks like in a web catalog — for example, ours.
For senders the rule inverts: want to be understood by everyone — avoid first‑year emoji in newsletters and important messages. Covered in emoji in marketing.
The diamond �: corrupted in transit
Diagnosis. � is the special "replacement character": bytes got mangled — somewhere the text was re‑encoded incorrectly. Classic crime scenes: exports from legacy systems, emails with wrong encodings, copy‑paste chains across programs, databases without four‑byte support (old MySQL's utf8 instead of utf8mb4 — the famous trap that ate millions of emoji).
Treatment. On the receiving end — none: the information is gone; ask for a resend. If the � is born in your own system (site, database, export) — fix the encoding: UTF-8 everywhere, utf8mb4 in MySQL.
Flags as letters: RU instead of a flag
The most curious case. A country flag in Unicode is not a single character but a pair of indicator letters: RU = R + U, and the font itself fuses the pair into flag artwork. And here's the thing: Windows is the only major platform that deliberately doesn't draw country flags — Microsoft never added them to Segoe UI Emoji, so you see the letters. It's a conscious decision (flag geopolitics is a minefield, and Microsoft chose not to answer such questions with a font), not a malfunction.
Treatment:
- In browsers — extensions that substitute web emoji sets (e.g. Twemoji) partially help.
- Telegram Desktop and some apps show flags — they render emoji with their own sets, bypassing the system font.
- System‑wide — no fix: it's platform policy; don't wait for it to change.
A black‑and‑white outline instead of color
Diagnosis. The character exists in two presentations: text (monochrome outline) and emoji (color artwork) — and the app picked text. Word and some editors behave this way: ☺ instead of 😊.
Treatment. Usually unnecessary: on recipients' phones it renders in color. To force color, an invisible "emoji presentation selector" (VS16) follows the character — catalogs and emoji panels usually insert symbols with it already attached.
The diagnosis table
| What you see | Cause | Fix |
|---|---|---|
| □ box | emoji newer than your OS | update OS/app |
| � replacement diamond | encoding corrupted in transit | resend; fix UTF-8 |
| RU, US as letters | Windows doesn't draw flags | browser extension / acceptance |
| ☺ monochrome outline | text presentation of the symbol | usually none needed |
| empty gap | an invisible control character (ZWJ etc.) | it's a service character, all is well |
Checking a specific emoji
- Open the emoji catalog and find the symbol — you'll see how it should look (Apple and Google styles), its name and when it was introduced.
- Compare with your system. A box means your OS's age is the issue.
- For newsletters and interfaces, keep the two‑platform rule: check the emoji on at least iPhone and Android before sending.
In short
A box — update; the question diamond — the character died in encoding, ask for a resend; flags on Windows — not a bug but Microsoft's standing policy. An emoji is a code each system draws with its own font: when the artwork is missing, you get a placeholder.
Check any emoji — its look, name and who will see it — in our emoji catalog: Apple and Google artwork side by side, one‑click copy.