Invisible Text Generator

Tap a blank character to copy it, see its real width between two lines, and read what Unicode made it for.

Hangul filler 1 character

ㅤ

No blank works in every app. Paste it and check. If the app refuses it, try the next one below.

U+3164. Hangul Compatibility Jamo, in Unicode by version 1.1 (1993). Unicode classes it as a letter, not a space, and it is drawn as a blank the full width of a Korean letter. It is in the standard only for compatibility with the Korean standard KS X 1001. The name list also calls it chaeum.

Use these for fun, not for anything that matters. Screen readers read many of these characters badly or skip them, search cannot find them, and some apps strip them or show empty boxes.

All 33 blank characters: tap one to copy it

33 blank characters in 4 groups.

With a keyboard: Tab goes into the table once, the arrow keys move inside it, and Enter copies.

Blank, but not a space 5

Hidden formatting characters 8

Real spaces 16

Invisible maths operators 4

Blank character of the day

   

How it works

This invisible text generator is a table of 33 blank characters. Tap one to copy it, and read in the list below what Unicode made it for. They come in three kinds: real spaces, blanks that software counts as a letter or a symbol, and hidden characters that take up no room at all. Whether Discord, TikTok, Fortnite or any other app accepts a blank is that app's decision.

Read the full guide

Copy one, then check it

Press Copy at the top for the Hangul filler, or tap any blank in the table under it. One tap puts one blank character on your clipboard, so paste twice for a wider gap. An invisible character copy is hard to check by eye. Each blank sits between two lines that show its width, with its name and code point underneath. For a quick empty character copy paste, start with the first group.

Three kinds of blank

A real space has width. The standard notes that you can select one with the cursor, because it is a shape with no pixels turned on. The 5 blanks in the first group look the same. Four are Hangul fillers, which Unicode counts as letters. One is a Braille cell with no dots, counted as a symbol. A program sees content there, not a gap. The hidden characters have no shape at all and only steer the text around them.

What blank characters are good for

Most of these characters do spacing work. A no-break space keeps 10 kg on one line, a figure space lines up columns of numbers, and a zero width space lets a long string break where you choose. The other uses are small: a blank name where the app's rules allow it, and an empty-looking message for a friend who is in on the joke. For text meant to be seen, the bubble text generator puts each letter in a circle.

Tips
  • A device with no Braille font can draw Braille pattern blank as an empty box. The four Hangul fillers are safer.
  • Skip the en quad and the em quad. Apps that tidy pasted text turn them into the en space and the em space, so copy those two instead.
  • Some short fields count bytes. In UTF-8 only the ordinary space fits in one byte: three blanks take two and the other 29 take three.
  • If a pasted word will not match or a line breaks oddly, suspect a stray zero width space and type the word again by hand.
  • An empty-looking message reads as a glitch to anyone not in on the joke, so follow it with a line that says what you did.

Questions and answers

What is an invisible character?

A character that your device draws as empty space or as nothing. Unicode has no single one. This page lists 33, picked by rule from Unicode's own data: 16 real spaces, 5 blanks classed as a letter or a symbol, 8 hidden formatting characters and 4 invisible maths operators. Each was added for a plain job, such as marking where a Thai sentence may break.

Why is a blank character not the same as a space?

Programs read a character's Unicode properties, not its picture. The 16 real spaces have the White_Space property, which 25 characters share once tab and line feed are counted. The Hangul filler is classed as a letter and Braille pattern blank as a symbol, and neither has that property. A message that holds one is not empty to a program, however empty it looks.

Invisible emoji copy and paste: is there one?

Not as an emoji. None of the 33 blanks is an emoji in Unicode's data, so what an invisible emoji copy paste button gives you is an ordinary blank character like these. The nearest thing is the zero width joiner, which Unicode lists as an emoji component. It is the glue in combined emoji: a polar bear is a bear, a joiner and a snowflake.

How to send an invisible text on an iPhone?

The invisible text iPhone owners usually mean is Invisible Ink, a bubble effect in the Messages app that needs no blank characters. Apple's steps for how to send invisible text this way: type the message, touch and hold the Send button, tap the grey dot to preview the bubble effects, then send. Apple says Invisible Ink "blurs the bubble until your recipient swipes to reveal it". A blank character leaves nothing to reveal.

Does an invisible character work on Discord, TikTok or Fortnite?

That is up to each app, and the answer can change with any update, so this page keeps no list. Every character here is ordinary Unicode text, and an app is free to accept it, trim it or refuse it. If it says no, that is its rule to make, and a visible name is the way forward.

All 33 blank characters

Blank, but not a space 5

  • Braille pattern blank U+2800. Braille Patterns, added in Unicode 3.0 (1999). The Braille cell with no dots raised. Unicode classes it as a symbol, and its own note says that many fonts draw it as a fixed-width blank but that it does not act as a space.
  • Halfwidth Hangul filler U+FFA0. Halfwidth and Fullwidth Forms, in Unicode by version 1.1 (1993). The half-width partner of the Hangul filler. Unicode links it back to U+3164 as its narrow form, and it is classed as a letter too.
  • Hangul choseong filler U+115F. Hangul Jamo, in Unicode by version 1.1 (1993). A placeholder for the missing first consonant of an incomplete Korean syllable. The standard calls it an invisible filler, and it is classed as a letter.
  • Hangul filler U+3164. Hangul Compatibility Jamo, in Unicode by version 1.1 (1993). Unicode classes it as a letter, not a space, and it is drawn as a blank the full width of a Korean letter. It is in the standard only for compatibility with the Korean standard KS X 1001. The name list also calls it chaeum.
  • Hangul jungseong filler U+1160. Hangul Jamo, in Unicode by version 1.1 (1993). A placeholder for the missing vowel of an incomplete Korean syllable. The standard calls it an invisible filler, and it is classed as a letter.
Show all 33 blank characters (28 more)

Hidden formatting characters 8

  • Combining grapheme joiner U+034F. Combining Diacritical Marks, added in Unicode 3.2 (2002). Despite the name, it joins nothing you can see. It changes how neighbouring characters sort and search in some languages, and keeps apart sequences that would otherwise count as identical. Classed as a combining mark with no visible glyph.
  • Mongolian vowel separator U+180E. Mongolian, added in Unicode 3.0 (1999). In Mongolian it marks the break before a final a or e that is written apart from the rest of its word. Since Unicode 16.0 it also stands before a separated suffix, a job it took over from the narrow no-break space. Unicode classed it as a space up to version 6.2 and has classed it as a format character since version 6.3 (2013).
  • Soft hyphen U+00AD. Latin-1 Supplement, in Unicode by version 1.1 (1993). Marks a place where a word may be hyphenated if it has to be split across lines. It shows nothing unless the line breaks there.
  • Word joiner U+2060. General Punctuation, added in Unicode 3.2 (2002). A no-break space with no width: it says a line must not break between its neighbours. The standard prefers it for that job in any new text.
  • Zero width joiner U+200D. General Punctuation, in Unicode by version 1.1 (1993). Asks for a join or a ligature between its neighbours. It is also the glue inside emoji: the family, rainbow flag and polar bear emoji are each several emoji held together by this character.
  • Zero width no-break space U+FEFF. Arabic Presentation Forms-B, in Unicode by version 1.1 (1993). First of all the byte order mark, a signature at the very start of a file. Until Unicode 3.2 it was also the only character that forbade a line break without taking up room. That job has passed to the word joiner, U+2060, and the name list calls the old use deprecated.
  • Zero width non-joiner U+200C. General Punctuation, in Unicode by version 1.1 (1993). Asks two letters that would normally join to stay apart. The standard gives Persian written in Arabic script as the case that needs it. It has no effect on where a line breaks.
  • Zero width space U+200B. General Punctuation, in Unicode by version 1.1 (1993). Marks a place where a line may break in writing that puts no spaces between words. The standard names Thai, Myanmar, Khmer and Japanese. It has no width of its own and, despite the name, is classed as a format character and not as a space.

Real spaces 16

  • Em quad U+2001. General Punctuation, in Unicode by version 1.1 (1993). A second code point for the em space, also called a mutton quad. Normalising text turns it into U+2003.
  • Em space U+2003. General Punctuation, in Unicode by version 1.1 (1993). Nominally as wide as the type is tall. Printers called it a mutton.
  • En quad U+2000. General Punctuation, in Unicode by version 1.1 (1993). A second code point for the en space. Unicode treats the two as the same character, and normalising text turns this one into U+2002.
  • En space U+2002. General Punctuation, in Unicode by version 1.1 (1993). Half an em wide. Printers called it a nut.
  • Figure space U+2007. General Punctuation, in Unicode by version 1.1 (1993). As wide as a digit in a font whose digits share one width, so columns of numbers line up. A line may not break at it.
  • Four-per-em space U+2005. General Punctuation, in Unicode by version 1.1 (1993). A quarter of an em, the printer's mid space.
  • Hair space U+200A. General Punctuation, in Unicode by version 1.1 (1993). Thinner than a thin space, typically a tenth to a sixteenth of an em. In traditional typography it was the thinnest space there was.
  • Ideographic space U+3000. CJK Symbols and Punctuation, in Unicode by version 1.1 (1993). The space of Chinese and Japanese text, as wide as one ideograph. Unicode links it back to the ordinary space as its wide form.
  • Medium mathematical space U+205F. General Punctuation, added in Unicode 3.2 (2002). A space for mathematical formulas, four eighteenths of an em wide. The name list shortens it to MMSP.
  • Narrow no-break space U+202F. General Punctuation, added in Unicode 3.0 (1999). A thin space at which a line may not break. The name list says it should be as wide as the thin space, U+2009.
  • No-break space U+00A0. Latin-1 Supplement, in Unicode by version 1.1 (1993). As wide as an ordinary space, but a line may not break on either side of it. Commonly shortened to NBSP.
  • Punctuation space U+2008. General Punctuation, in Unicode by version 1.1 (1993). As wide as the narrow punctuation of the font, typically its full stop.
  • Six-per-em space U+2006. General Punctuation, in Unicode by version 1.1 (1993). A sixth of an em. The name list says computer typography sometimes treats it as a thin space.
  • Space U+0020. Basic Latin, in Unicode by version 1.1 (1993). The ordinary space from the space bar, listed for comparison. Every other row in this group is a space of another width, or with another rule about line breaks.
  • Thin space U+2009. General Punctuation, in Unicode by version 1.1 (1993). Much narrower than an ordinary space, typically a fifth or a sixth of an em.
  • Three-per-em space U+2004. General Punctuation, in Unicode by version 1.1 (1993). A third of an em, the printer's thick space.

Invisible maths operators 4

  • Function application U+2061. General Punctuation, added in Unicode 3.2 (2002). Sits between the name of a function and its argument, to say that f(x) means f applied to x and not f times x. It displays nothing.
  • Invisible plus U+2064. General Punctuation, added in Unicode 5.1 (2008). Stands for an addition that is meant but not written, as in 3¼, which means 3 plus ¼.
  • Invisible separator U+2063. General Punctuation, added in Unicode 3.2 (2002). Also called the invisible comma. It says that the items on either side of it form a list, as two indices written with no comma between them do.
  • Invisible times U+2062. General Punctuation, added in Unicode 3.2 (2002). Stands for a multiplication that is meant but not written, such as the one between m and c in mc².

How this list was compiled: The rows were chosen by rule from the Unicode Character Database, version 18.0.0, and no code point was typed by hand. Rule one: every character whose general category is space separator in https://www.unicode.org/Public/18.0.0/ucd/UnicodeData.txt (17 of them), except the Ogham space mark, because the name list says its glyph is blank only in stemless fonts. That gives the 16 real spaces, all of which have the White_Space property in https://www.unicode.org/Public/18.0.0/ucd/PropList.txt. Rule two: every assigned character with the Default_Ignorable_Code_Point property in https://www.unicode.org/Public/18.0.0/ucd/DerivedCoreProperties.txt, which is the standard's own list of characters that normally display nothing, minus seven classes. Those classes are the characters that change the direction of text, the variation selectors and the tag characters (which do nothing on their own), the deprecated format characters, the format characters for music and for shorthand, and the two Khmer inherent vowels. That gives the 4 Hangul fillers, the 8 hidden formatting characters and the 4 invisible maths operators. Rule three: Braille pattern blank, the one blank that is neither a space nor default ignorable. Control codes such as tab and line feed are left out. Blocks come from https://www.unicode.org/Public/18.0.0/ucd/Blocks.txt, the version that added each character from https://www.unicode.org/Public/18.0.0/ucd/DerivedAge.txt (which tracks versions from 1.1 onwards) and the years from https://www.unicode.org/history/publicationdates.html. The notes on what each character is for come from the annotations in https://www.unicode.org/Public/18.0.0/ucd/NamesList.txt and from the Unicode 18.0.0 core specification: section 6.2.3 for the spaces (https://www.unicode.org/versions/Unicode18.0.0/core-spec/chapter-6/), section 23.2 for the zero width, joining and hyphenation characters (https://www.unicode.org/versions/Unicode18.0.0/core-spec/chapter-23/), section 18.6 for the Hangul fillers (chapter-18), section 13.5 for the Mongolian vowel separator (chapter-13), section 5.3 for how unsupported characters are drawn (chapter-5) and section 22.6 for the invisible maths operators (chapter-22). The emoji built with the zero width joiner were read from https://www.unicode.org/Public/18.0.0/emoji/emoji-zwj-sequences.txt. The change of the Mongolian vowel separator from a space to a format character was read from the 6.2.0 and 6.3.0 editions of UnicodeData.txt. All checked on 2026-09-19. Names are the official ones in sentence case. In each row, x.space says whether Unicode counts the character as white space and x.ignorable whether it is default ignorable. Licence: own work