It looks fine on your screen, then arrives as a row of boxes □ on an older phone — the classic fancy-text failure. Boxes aren't corruption and nothing was lost in copying: the other device simply has no drawing for that character.
This guide covers the mechanism, which styles are risky, which are near-bulletproof, and the recovery order.
Missing glyph, not missing data
To display a character, the device's font library needs a drawing for it. Unicode catalogs tens of thousands of characters and no device ships drawings for all of them. The character arrived intact — the device just can't paint it, so it draws a placeholder box saying “there's a character here I can't draw”.
That's why boxes are always a receiver-side issue: you see it fine, they see boxes — your fonts cover it, theirs don't.
High-risk vs low-risk styles
- Exotic-script decorations: ꧁ ꧇ ᨳ from Javanese and Lontara — great gamer energy, high box rate on old devices.
- Emoji-presentation characters: 🅱 ⚜ get forced into color emoji on some platforms, not what you designed.
- Dense combining marks: zalgo stacks dozens of marks; old renderers choke.
- Low-risk picks: fullwidth letters (a CJK staple), circled digits ①, and basic symbols ♡ ★ ✿ — near-universal coverage.
The recovery order
First swap the style — every intent has a safer twin (꧁꧂ → 『』, 🅱 → 𝗕). Then swap the symbol — exotic decorations → basic ♡ ★. Finally accept the limit — on a ten-year-old device anything fancy can fail, so keep important messages plain.
The cheapest insurance: view your own post on a second device before you commit.