Squares & Boxed Text Fonts Generator

Enclose every character inside black or white square blocks for modern geometric typography.

Three separate blocks supply the boxed look

Say squared text and you could mean any of three unrelated regions of the standard, which is why two boxed rows on the same page can behave differently once you paste them.

Enclosed Alphanumerics (U+2460 to U+24FF) is the oldest of the three. It holds the circled letters, capital A at U+24B6 through Z at U+24CF and lowercase a at U+24D0 through z at U+24E9, plus circled digits one to twenty starting at U+2460 and a circled zero at U+24EA. Those are outlines rather than squares, but they are what most people reach for to put a letter inside a shape.

Enclosed Alphanumeric Supplement (U+1F100 to U+1F1FF) is where the actual squares live. The outlined squared capitals run from U+1F130 to U+1F149, and the filled, reversed-out ones run from U+1F170 to U+1F189. Unicode 6.0 added this block in October 2010, the same release that first encoded emoji, and that shared birthday explains most of the odd behaviour below.

The third source is fullwidth Latin, a different mechanism entirely, covered further down.

One row can draw on several blocks at once: the dark circled style takes its letters from U+1F150 onward, its zero from U+24FF, and its digits one to nine from the Dingbats block at U+278A, so three designers drew the characters in one word.

Why some boxed letters turn into country flags

This one is easy to check yourself. The same block that carries the squared capitals also carries the regional indicator symbols, twenty-six characters running U+1F1E6 to U+1F1FF, one per Latin letter. They exist for a single purpose: a pair of them whose letters form a valid ISO 3166-1 alpha-2 region code renders as one flag. That is the whole mechanism behind flag emoji, defined as an emoji flag sequence in the Unicode emoji specification.

Unpaired, a regional indicator usually renders as a boxed letter. That resemblance is why a lot of generators use them as their squared alphabet, and why text copied from elsewhere can silently collapse: type US, GB or IN inside such a string and two of your letters disappear into one flag mid-sentence. Pairing runs left to right across an unbroken sequence, so adding or deleting a single letter re-pairs everything after it and the damage moves.

The boxed rows here use the negative squared capitals at U+1F170 to U+1F189, which carry no flag behaviour, so a pair stays two boxes. If you paste boxed text and a flag appears, you have regional indicators, not squares. Putting any ordinary character between the two letters breaks the pair and restores the boxes.

Emoji presentation changes these glyphs per platform

Several of these code points are emoji, and that decides how they are drawn. In the filled squared set, A at U+1F170, B at U+1F171, O at U+1F17E and P at U+1F17F carry emoji properties, because they double as the blood-type and parking signs. So does the AB sign at U+1F18E and the run of squared word signs from U+1F191 to U+1F19A, spelling out CL, COOL, FREE, ID, NEW, NG, OK, SOS, UP and VS.

Their default presentation is text, and variation selector-16 (U+FE0F) is the code point that formally requests the colour form. In practice font fallback decides for you: the renderer picks whichever installed font covers the character, and on a phone that is frequently the colour emoji font. Apple, Google and Microsoft each ship their own, and their tiles differ in corner radius, weight and colour.

The consequences are concrete. A string that is flat black-and-white on your laptop can arrive as a red or blue tile on someone's phone. A colour glyph ignores your text colour and your bold setting, so a boxed word inside a styled heading stops matching it. You cannot fix this from the text, because you are not shipping a font with it. Preview on a second device first.

Fullwidth letters inherit an East Asian typographic grid

The third way to get a boxed, spaced-out line is the Halfwidth and Fullwidth Forms block, U+FF00 to U+FFEF. Fullwidth capitals sit at U+FF21 to U+FF3A, lowercase at U+FF41 to U+FF5A and digits at U+FF10 to U+FF19. The range U+FF01 to U+FF5E is a one-to-one copy of printable ASCII from U+0021 to U+007E, making it the only source here with full coverage of an English keyboard.

The spacing is not decoration. These characters were encoded for round-trip compatibility with older East Asian character sets, where a Latin letter had to occupy one full em cell so that it lined up with ideographs on a fixed grid. You are looking at a letter sized for a Chinese, Japanese or Korean column, dropped into a Latin sentence. The same block also holds halfwidth katakana, the mirror image of the same idea.

What that costs you is width, not characters. One letter is still one code point, so a counter may not object, while the rendered line takes roughly twice the space and a bio that fitted at sixty characters now wraps at thirty. The matching space is usually U+3000, the ideographic space, which lives in a different block again and can slip past a form that only trims ordinary spaces.

What a boxed character costs in a capped field

The circled forms at U+2460 to U+24FF and the fullwidth forms at U+FF00 to U+FFEF sit inside the Basic Multilingual Plane, so UTF-16 stores each in one code unit and UTF-8 in three bytes. The squared and negative squared capitals sit above U+FFFF, which means UTF-16 must encode each as a surrogate pair: two code units, four UTF-8 bytes, one visible letter.

That is why a bio counter seems to lie. A field that counts UTF-16 code units accepts roughly half as many squared letters as plain ones, so an Instagram bio capped at 150 characters can stop you somewhere near seventy-five. Limits that count code points are unaffected, and you cannot tell which kind you face from the outside.

Weighted counting adds a second effect. X measures a post against 280 by weight rather than raw count, and characters outside a small Latin and punctuation range count double, so circled, squared and fullwidth each cost two there whichever plane they came from.

The practical rule follows from the plane. In a tight field, prefer the circled alphabet: it still reads as enclosed text and costs one code unit. Keep the filled squares for a display name or a headline, where a handful of characters is all you need.

Coverage gaps break a boxed string mid-word

There is no lowercase squared alphabet in Unicode. Only capitals were encoded, so every squared style improvises, and the improvisation is visible. The outlined row here maps lowercase onto the parenthesized capitals at U+1F110 to U+1F129, a different shape family sitting beside the squares in the same block. The filled row maps upper and lower case onto the same twenty-six characters, which means OK and ok come out identical and the case distinction in your original text is simply gone.

Digits are worse. No squared digits exist, so numbers fall through as plain ASCII and sit unboxed and visually smaller inside a boxed word, which is why a boxed gamertag with a number in it never quite lines up. Circled digits do exist, but they stop at twenty; twenty-one through thirty-five live in Enclosed CJK Letters and Months at U+3251 to U+325F, a different block entirely.

Punctuation has no enclosed form at all, so apostrophes, hyphens and question marks stay plain. Neither do accented Latin letters, Cyrillic or Greek, so a name containing e-acute or an umlaut drops back to ordinary type in the middle of itself. A boxed string is a patchwork rather than a typeface, and the seams show first on names, handles and anything numeric.

When boxed text is the wrong choice

Assistive technology handles these badly. A screen reader reads what the character actually is, so a squared capital may be announced by its full Unicode name, read as the bare letter, or skipped in silence, depending on the reader's verbosity setting. A whole bio written this way can arrive as an unusable stream, or as nothing.

Search does not match them either. A boxed letter is a different character from the plain one, so a boxed hashtag indexes nothing and a boxed name is not found by people typing your real one.

Normalisation removes the effect outright. Circled, squared and fullwidth characters all carry compatibility decompositions back to plain ASCII in the Unicode data, so any system applying NFKC flattens them without warning. That is why boxed text sometimes pastes back as ordinary letters, and why some platforms strip it on save.

So keep it away from anything parsed by a machine or read under pressure: job applications that pass through recruitment software, ad copy and app store listings, email subject lines, legal names, invoice fields, and anything a person may need to retype. It works where it decorates text that also exists in plain form: a display name beside a normal handle, or a divider inside a profile.

Test a boxed string before you publish it

Paste into the real field, never into a preview. Only the destination's own counter tells you whether that field counts code points or code units, and the two answers differ by a factor of two above U+FFFF.

Check it on a second operating system, ideally a phone, because emoji fallback is the variable you cannot control. If the letters came from somewhere other than this page, scan for flags before posting: they betray regional indicators immediately.

Search for your own text afterwards. If your profile does not come back for its own name, you have styled the one string people use to find you.

Watch the end of long text for U+FFFD, the replacement character drawn as a black diamond with a question mark. A field that truncates by code unit can slice a surrogate pair in half, and the orphaned half renders as that diamond, so shorten deliberately and leave the cut between characters.

Turn a screen reader on for thirty seconds and listen once. It takes less time than writing the bio did.

Finally, keep the plain version. Converting boxed text back by hand is slow, and lossy where a style collapsed both cases; everything here transforms from whatever is in the input box, so that box holds your original.

Frequently asked questions

Can I use boxed letters in a username or handle?

Usually not. Handles are validated against a restricted ASCII set: an X handle allows fifteen characters of letters, digits and underscores, and an Instagram username thirty of those plus periods. Boxed characters fail outright. The display name is the field that normally accepts them, and it is capped far lower than a bio.

Why does the same boxed text look different on my phone?

The characters are identical; the font is not. Fallback picks whichever installed font covers the code point, and on a phone that is often the colour emoji font. Apple, Google and Microsoft each draw these tiles with their own radius, weight and palette. Nothing in the string changes that: you copy text, not a typeface.

Is there a lowercase squared alphabet anywhere?

No. Unicode encoded squared and negative squared Latin capitals only, twenty-six of each, with no lowercase counterparts. Generators improvise by uppercasing everything, by borrowing the parenthesized capitals at U+1F110 to U+1F129, or by mapping both cases to one alphabet. Whichever route is taken, the case in your original text does not survive.

Will a boxed hashtag or keyword still be found?

No. A boxed letter is a different code point from the plain one, so it matches no plain-text search, hashtag index or mention lookup. A hashtag typed in squared capitals joins no feed, even though it looks like a tag. Where discovery matters, write the plain version and decorate around it instead.

Does this download a font or send my text anywhere?

Neither. The conversion is a character substitution performed in your browser, so what lands on the clipboard is text, not an image or a font file. Nothing is uploaded, there is no account, and it is free. An empty rectangle at the other end means that device has no glyph for the code point.

Can I convert boxed text back to plain letters?

Sometimes. Any tool applying NFKC normalisation maps circled, squared and fullwidth characters back to their ASCII originals, because those carry compatibility decompositions. Regional indicators do not, so they survive untouched. Case is unrecoverable wherever a style mapped both cases onto one alphabet, which is why keeping the original text is faster and lossless.

Are boxed characters safe in filenames, URLs or code?

They are legal in most modern filesystems, but a URL percent-encodes each one into a long escape, terminals may draw them as empty boxes, and identifiers in most programming languages reject them. Unicode's security guidance treats visually confusable characters as a hazard in identifiers. Keep them out of anything a machine parses.

How do I tell whether a field counts code points or code units?

Type ten squared capitals into it and read the counter. A drop of ten means counting by code point. A drop of twenty means the field counts UTF-16 code units, or weights these ranges double, and each squared letter costs two. Circled and fullwidth letters cost one either way.