Every style a fancy text generator offers is a set of real characters rather than a font, and almost all of them come from one place: a block of maths alphabets Unicode added in 2001. That block has gaps. Twenty-four letters are missing from it on purpose, because they already existed somewhere older, and how a generator handles those gaps decides whether a script name comes out whole, comes out in two styles at once, or comes out with a box in it.
When you copy a bold name from a generator you are not copying formatting. You are copying different characters that happen to look bold. 𝐇 is not H in a heavier weight; it is MATHEMATICAL BOLD CAPITAL H, code point U+1D407, a separate character with its own number.
That is why the style survives a paste into a bio or a game name, where there is no formatting to carry it, and it is also the root of every limitation styled text has. The characters were encoded for mathematics, and everywhere else they still behave like maths symbols: they are counted, read aloud and searched differently from the letters they resemble.
The fancy text generator shows every alphabet side by side. This article is about where they come from.
Most styles come from the Mathematical Alphanumeric Symbols block, U+1D400 to U+1D7FF, added in Unicode 3.1. It holds thirteen styled Latin alphabets: bold, italic, bold italic, script, bold script, fraktur, bold fraktur, double-struck, sans-serif, sans-serif bold, sans-serif italic, sans-serif bold italic and monospace.
Each alphabet is 52 letters, capitals then lowercase, in the same order, so the block is a grid: take the start of an alphabet, add the letter's position, and you have the code point. Every generator is built on that arithmetic.
Digits are scarcer. Only five styles have them: bold, double-struck, sans-serif, sans-serif bold and monospace. There are no italic, script or fraktur digits anywhere in Unicode, which is why the numbers in a script or gothic name stay plain. That is not the generator failing; the characters do not exist.
The whole block sits above U+FFFF, in the range most software stores as two units per character, which is why a 23-character name fills 44 slots.
In mathematical writing, style carries meaning. A bold x and an italic x are different variables, and a fraktur 𝔤 names something else again. Plain text had no way to keep them apart once formatting was stripped, so Unicode encoded the styles as characters in their own right.
That origin explains the shape of the block. Mathematicians use script and double-struck capitals constantly, so those alphabets are there in full. Nobody writes equations with script digits, so those were never added.
Some styled letters were in Unicode long before 2001. The Letterlike Symbols block, U+2100 to U+214F, has been part of the standard since 1993, and it already held the styled letters mathematics used most: ℝ for the real numbers, ℤ for the integers, ℂ for the complex numbers, ℋ for a Hamiltonian, ℒ for a Laplace transform, ℜ and ℑ for real and imaginary parts.
Unicode avoids encoding the same character twice. When the maths alphabets arrived, the slots where those letters would have gone were left permanently empty, and the code charts point to the older characters instead. The gaps are:
Italic: h, which is ℎ (U+210E, formally named PLANCK CONSTANT).
Script: B E F H I L M R and e g o, which are ℬ ℰ ℱ ℋ ℐ ℒ ℳ ℛ and ℯ ℊ ℴ.
Fraktur: C H I R Z, which are ℭ ℌ ℑ ℜ ℨ.
Double-struck: C H N P Q R Z, which are ℂ ℍ ℕ ℙ ℚ ℝ ℤ.
That is twenty-four letters across four alphabets. The other nine alphabets, including bold, sans-serif and monospace, have no gaps at all.
The arithmetic that makes generators simple is exactly what breaks at a gap. Add the position of B to the start of the script alphabet and you land on U+1D49D, a code point with no character assigned to it. No font on any device can draw it, because there is nothing to draw, so every reader sees a box.
That is a different failure from the usual one. A box normally means the reader's device has no font for a character that does exist, the problem covered in why fancy text shows as boxes. A reserved code point is a box on every platform, permanently.
The other common mistake is quieter: filling the gap with the nearest letter to hand. A script alphabet patched with italic letters turns Hello into 𝐻𝑒𝓁𝓁𝑜, three italic letters and two script ones. Nothing renders as a box, so it looks almost right, which is how it survives testing.
The correct fill is the Letterlike character, because that is the letter Unicode designates for the gap. Every style on this site fills the gaps that way, so the cursive generator writes ℋℯ𝓁𝓁ℴ, and the Old English and double-struck generators return complete alphabets.
The gaps have a side effect that is easy to miss. The maths block sits above U+FFFF, so its letters take two units each in the UTF-16 encoding most apps use for text. Letterlike Symbols sit below it, at one unit each.
So a styled name does not cost a fixed two units per letter. ℋℯ𝓁𝓁ℴ is five letters and seven units: three gap letters at one unit and two script letters at two. The double-struck ℝ𝕆𝕄𝔸 is four letters and seven units.
This matters wherever a field counts units rather than letters, which many do. The same name can fit in one alphabet and not in another for a reason no preview shows, and a name with gap letters in it is shorter than the same name in bold.
Not every style comes from the maths block. Bubble letters (ⓐ) come from Enclosed Alphanumerics, the negative squares (🅰) from its supplement, wide text (A) from the fullwidth forms made for East Asian typesetting, and small caps and tiny text are assembled from letters linguists use for phonetic transcription.
Those blocks have gaps of their own, and messier ones, because nobody designed them as alphabets. Small caps has no true X and borrows ǫ for Q; superscript has no q at all. Small caps, tiny text and wide text covers each one.
There is one place the difference between 𝐇 and H disappears on purpose. Unicode defines a compatibility normalisation called NFKC that maps styled letters back to plain ones: 𝐇, ℋ and ℍ all become H. Search engines and some platforms apply it, which is why styled text is findable in some places and invisible to search in others.
Many screen readers do not normalise and announce character names instead. What a screen reader hears covers what that sounds like, and it is the strongest reason to keep styled text out of anything someone needs to read rather than recognise.
The gaps are not a reason to avoid any style, but they explain most results that look slightly off.
If one letter of a script or gothic name looks a little different from its neighbours, it is probably a gap letter drawn from a different font on that device. That is correct behaviour and the price of those alphabets.
If a letter is a box on every device you try, suspect a reserved code point rather than a missing font, and try another generator's version of the style.
If a name is just over a limit that counts units, an alphabet with gap letters in it may bring it under.
And if the name has to be searchable, typeable or read aloud, keep the letters plain and put the style in a frame around them, as the case for frames in game names sets out.
Either the device has no font for that character, or the generator produced a reserved code point where a gap letter belongs. If it is a box on every device, it is the second. The script gap letters are ℬ ℰ ℱ ℋ ℐ ℒ ℳ ℛ ℯ ℊ ℴ, and a correct generator uses those.
Unicode encodes styled digits in only five styles: bold, double-struck, sans-serif, sans-serif bold and monospace. In every other style the digits stay plain because there is nothing to map them to.
Yes. ℝ is U+211D in Letterlike Symbols, in Unicode since 1993, while the rest of the double-struck alphabet arrived in the maths block in 2001. The maths block leaves the double-struck R slot empty and points to ℝ, so ℝ is the only double-struck R there is.