Why the Character You Copied Turns Into a Box (And How to Stop It Happening)

You find the perfect symbol. You copy it, paste it into a message, hit send, and your friend replies with a screenshot showing an empty rectangle where your character should be. Or worse, nothing at all the symbol just quietly vanished somewhere between your keyboard and their screen.

This is one of the most common frustrations with copy-paste characters, and it is not an emoji-only problem. The same failure hits arrows, currency symbols, mathematical signs, and the styled letters you get from a tiny text converter. Almost nobody explains why it happens, which is a shame, because the explanation is genuinely useful β€” it lets you predict which characters are safe before you send them, rather than finding out afterwards from a confused screenshot.

The character and the picture of the character are two different things

Here is the core idea, and everything else follows from it.

Unicode is a giant numbered list. Every character gets a number, called a code point. The letter A is number 65. The grinning face emoji is number 128512. Unicode’s job ends there β€” it assigns the number and describes what the character means. It does not draw anything.

The drawing is a font’s job. A font is a collection of pictures, called glyphs, each tied to a code point. When your phone displays a character, it looks up the code point in whatever font is active and pulls out the matching glyph.

So a character can be perfectly valid, correctly copied, and successfully transmitted β€” and still show as a box, because the font on the receiving device has no picture for that number. The text arrived fine. The device just has nothing to draw.

That empty box even has a name. It is called tofu, and the Google font project built to eliminate it is called Noto, short for “no more tofu.”

What actually happens when a font comes up short

Devices do not give up at the first miss. When the active font lacks a glyph, the system walks through a fallback chain β€” other installed fonts, then system fonts, then a last-resort font β€” hunting for anything that can draw that code point. You see a box only when the entire chain comes up empty.

This is why the same message looks different on different devices. It is not that one phone is “better.” They have different fonts installed and different fallback chains, so they fail in different places.

It also explains a stranger effect you have probably noticed: a string where some characters render beautifully and others are boxes, all in one line. Each code point is resolved independently. A single sentence can pull glyphs from four different fonts without telling you.

The four things that break most often

Emoji that are newer than the device. Unicode publishes new emoji every year, and device makers ship support on their own schedule. If you copy an emoji added in the latest release and send it to someone running a three-year-old phone, their system has never heard of that number. This is the single most common cause of emoji tofu, and there is no fix on your end β€” the glyph does not exist on their device.

Emoji built from several code points glued together. Many emoji you think of as one thing are actually a sequence. The family emoji is several people joined by an invisible character called a Zero Width Joiner (U+200D). Skin tone variants are a base emoji plus a separate modifier character. When a device does not understand the sequence, it does not show a box β€” it shows you the pieces. That is why a family emoji sometimes arrives as two adults and two children standing in a row, and why a waving hand occasionally shows up followed by a floating colour square.

Characters from rarely used Unicode blocks. Styled letters β€” small capitals, superscript, subscript, circled letters β€” live in blocks that were added for phonetics and mathematics, not for decoration. Font coverage there is much thinner than for ordinary letters. A converter that produces these can hand you a string that looks flawless on your own machine and falls apart on an older Android build, because it is pulling from ranges that many fonts skip entirely.

Combining marks. Some effects are built by stacking invisible modifier characters onto a normal letter. Glitch and strikethrough text work this way. Devices vary a lot in how they stack these, so the same string can look subtly corrupted, wildly corrupted, or perfectly normal depending on where it lands.

Where things break beyond the phone

Messaging apps are the friendly case, because most of them ship their own emoji font and render consistently. The trouble starts everywhere else.

Older desktop email clients have notoriously patchy coverage. Printed output can differ from what the screen showed, because the printer resolves fonts separately. Anything that generates an image from text β€” a video caption tool, a graphics template, a PDF exporter β€” uses whatever fonts that tool has, not your system fonts. And embedded devices such as smart TVs, car displays, and e-readers often carry a minimal font set with almost nothing beyond basic Latin.

Then there are the places that filter rather than fail. Usernames are the big one. Platforms enforce far stricter character rules on handles than on bios or messages, and a username that looks fine in the input box can be rejected at submit, or silently stripped. Always test a handle before you commit to it.

How to actually avoid the problem

Stick to older characters when it matters. The original emoji set and long-established symbols have near-universal coverage. If a message needs to land reliably, choose from the characters that have been around for years rather than the newest additions.

Send yourself a test. The fastest real check is to send the string to yourself across a different platform and open it on a different device. Two minutes of testing beats any amount of guessing.

Never let a special character carry meaning on its own. This is the rule that saves you. If your message still makes sense with every decorative character deleted, a rendering failure costs you nothing but polish. If the character is the information β€” a symbol standing in for a word, an arrow indicating direction, a styled letter spelling something out β€” then a device without that glyph loses your meaning entirely.

Expect sequences to come apart. If you are using a skin-tone variant or a multi-person emoji, accept that some recipients will see the components. Use them where that would be merely odd, not where it would be confusing or unfortunate.

Keep decorative styling out of anything functional. Search boxes, hashtags, filenames, and form fields all compare raw code points. A styled character will not match its plain equivalent, so a hashtag written in fancy letters is a hashtag nobody else will ever land on.

One thing worth remembering

Tofu is not a bug in what you copied. The character is real, correctly encoded, and faithfully delivered. What varies is whether the device at the other end owns a picture for it.

Once you think of it that way, the whole thing becomes predictable. Common character plus modern device equals safe. Rare character plus unknown device equals a gamble. Decoration that can be deleted without loss equals a gamble worth taking. Meaning that depends on the glyph surviving equals a gamble that is not worth it.

Copy freely. Just decide in advance whether it matters if it arrives as a box.

Leave a Comment