Invisible Character (Blank Text) Copy & Paste
Blank characters to copy, with the facts on how software treats each one.
Copy a character
The shaded box shows how much room each one takes- Hangul filler U+3164 HANGUL FILLER
A “blank” name or message where an app wants at least one letter — Unicode classes it as a letter (Lo).
- Counts as a space
- No
- Removed by “trim”
- No
- Default-ignorable
- Yes
- X weight
- 2
- UTF-8 bytes
- 3
Details
Width: Wide in Unicode’s East Asian width property; many fonts draw nothing.
Unicode marks it default-ignorable: software may draw nothing, show a box, or remove it.
NFKC normalisation turns it into U+1160 HANGUL JUNGSEONG FILLER.
NFKC normalisation turns it into U+1160 (Hangul jungseong filler).
- Braille blank U+2800 BRAILLE PATTERN BLANK
Blank lines in captions and bios that apps should not remove.
- Counts as a space
- No
- Removed by “trim”
- No
- Default-ignorable
- No
- X weight
- 2
- UTF-8 bytes
- 3
Details
Width: A fixed-width blank in many fonts.
Spacing that survives “trim spaces”, because it is not a space.
Unicode: “while this character is imaged as a fixed-width blank in many fonts, it does not act as a space.”
Screen readers may announce it as a braille pattern.
- Zero-width space U+200B ZERO WIDTH SPACE
A place where a long word or URL may wrap onto the next line.
- Counts as a space
- No
- Removed by “trim”
- No
- Default-ignorable
- Yes
- X weight
- 1
- UTF-8 bytes
- 3
Details
Width: No width.
Separating characters invisibly.
Unicode: “intended for invisible word separation and for line break control”.
Default-ignorable — easy for apps to strip, and it can break searches and copy-paste of codes.
- Word joiner U+2060 WORD JOINER
Keeping two characters on the same line without adding a visible space.
- Counts as a space
- No
- Removed by “trim”
- No
- Default-ignorable
- Yes
- X weight
- 2
- UTF-8 bytes
- 3
Details
Width: No width.
Unicode: “a zero width non-breaking space (only)” — the recommended replacement for U+FEFF inside text.
- No-break space U+00A0 NO-BREAK SPACE
Keeping “10 kg”, “₹ 500” or “Mr. Rao” together on one line.
- Counts as a space
- Yes
- Removed by “trim”
- Yes, at the ends
- Default-ignorable
- No
- X weight
- 1
- UTF-8 bytes
- 2
Details
Width: Same as a normal space.
A space that is not collapsed when several are typed in a row on web pages.
It is a space (White_Space): apps that trim spaces remove it at the start and end of text.
NFKC normalisation turns it into a normal space.
NFKC normalisation turns it into a normal space.
- En space U+2002 EN SPACE
A slightly wider gap, for example to line items up in a bio or signature.
- Counts as a space
- Yes
- Removed by “trim”
- Yes, at the ends
- Default-ignorable
- No
- X weight
- 1
- UTF-8 bytes
- 3
Details
Width: Half an em (half the font size).
A space: trimmed at the start and end of text, and turned into a normal space by NFKC.
NFKC normalisation turns it into a normal space.
- Em space U+2003 EM SPACE
A wide gap or a paragraph-style indent at the start of a line.
- Counts as a space
- Yes
- Removed by “trim”
- Yes, at the ends
- Default-ignorable
- No
- X weight
- 1
- UTF-8 bytes
- 3
Details
Width: One em (the font size).
A space: trimmed at the start and end of text, and turned into a normal space by NFKC.
NFKC normalisation turns it into a normal space.
More blank characters (19)
Blank characters — look empty, take up room
| Character | Room | Facts | Copy |
|---|---|---|---|
| Hangul choseong filler U+115F HANGUL CHOSEONG FILLER Like the Hangul filler: an invisible “letter”. Default-ignorable; part of the Hangul Jamo block, used to build Korean syllables. | Usually drawn as nothing | Counts as a space: NoRemoved by “trim”: NoDefault-ignorable: YesX weight: 2 | |
| Hangul jungseong filler U+1160 HANGUL JUNGSEONG FILLER Like the Hangul filler: an invisible “letter”. Default-ignorable; part of the Hangul Jamo block, used to build Korean syllables. | Usually drawn as nothing | Counts as a space: NoRemoved by “trim”: NoDefault-ignorable: YesX weight: 2 | |
| Halfwidth Hangul filler U+FFA0 HALFWIDTH HANGUL FILLER A narrower Hangul filler. Default-ignorable; NFKC turns it into U+1160. | Usually drawn as nothing | Counts as a space: NoRemoved by “trim”: NoDefault-ignorable: YesX weight: 2 |
Zero-width characters — take no room
| Character | Room | Facts | Copy |
|---|---|---|---|
| Byte order mark (BOM) U+FEFF ZERO WIDTH NO-BREAK SPACE Marking the start of a text file as Unicode (byte order mark). Not for use inside text. Unicode: its use as a non-breaking character is deprecated; use U+2060 instead.X’s open-source counting rules (twitter-text) treat a post that contains it as invalid. | No width | Counts as a space: NoRemoved by “trim”: Yes, at the endsDefault-ignorable: YesX weight: 2 | |
| Zero-width non-joiner U+200C ZERO WIDTH NON-JOINER Stopping letters from joining in Persian, Hindi and other scripts. Changes how the letters next to it are drawn — not a neutral blank. | No width | Counts as a space: NoRemoved by “trim”: NoDefault-ignorable: YesX weight: 1 | |
| Zero-width joiner U+200D ZERO WIDTH JOINER Joining emoji into one (👩💻 is 👩 + ZWJ + 💻) and joining letters in some scripts. Changes how the characters next to it are shown — not a neutral blank. | No width | Counts as a space: NoRemoved by “trim”: NoDefault-ignorable: YesX weight: 1 | |
| Soft hyphen U+00AD SOFT HYPHEN Marking where a long word may be hyphenated at the end of a line. Unicode: “an invisible format character indicating a possible hyphenation location”. | Invisible unless a word breaks there | Counts as a space: NoRemoved by “trim”: NoDefault-ignorable: YesX weight: 1 |
Spaces of other widths
| Character | Room | Facts | Copy |
|---|---|---|---|
| Thin space U+2009 THIN SPACE A small gap, for example between a number and a unit. A space: trimmed at the start and end of text. | About a fifth or sixth of an em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Hair space U+200A HAIR SPACE A barely visible gap. A space: trimmed at the start and end of text. | About a tenth to a sixteenth of an em — the thinnest space | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Figure space U+2007 FIGURE SPACE Lining up columns of numbers. Does not break (a no-break space the width of a digit). | The width of a digit | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Punctuation space U+2008 PUNCTUATION SPACE A gap the size of narrow punctuation. A space: trimmed at the start and end of text. | The width of a full stop | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Narrow no-break space U+202F NARROW NO-BREAK SPACE French punctuation spacing (« merci ! ») and grouping digits (1 000 000). Does not break; turned into a normal space by NFKC. | Same as a thin space | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 2 | |
| Medium mathematical space U+205F MEDIUM MATHEMATICAL SPACE Spacing in mathematical formulas. A space: trimmed at the start and end of text. | Four-eighteenths of an em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 2 | |
| Ideographic space U+3000 IDEOGRAPHIC SPACE A full-width space in Chinese, Japanese and Korean text. A space: trimmed at the start and end of text; NFKC turns it into a normal space. | The width of one Chinese or Japanese character | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 2 | |
| En quad U+2000 EN QUAD Same width as an en space. Canonically equivalent to U+2002 EN SPACE, so normalisation replaces it with that. | Half an em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Em quad U+2001 EM QUAD Same width as an em space. Canonically equivalent to U+2003 EM SPACE, so normalisation replaces it with that. | One em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Three-per-em space U+2004 THREE-PER-EM SPACE A “thick” space. A space: trimmed at the start and end of text. | A third of an em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Four-per-em space U+2005 FOUR-PER-EM SPACE A “mid” space. A space: trimmed at the start and end of text. | A quarter of an em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 | |
| Six-per-em space U+2006 SIX-PER-EM SPACE A narrow space, sometimes used as a thin space. A space: trimmed at the start and end of text. | A sixth of an em | Counts as a space: YesRemoved by “trim”: Yes, at the endsDefault-ignorable: NoX weight: 1 |
Make a run
Paste some text to check it.
Copy without them removes every marked character and turns special spaces into normal spaces. Tabs, emoji and the joiners that Hindi, Persian and other scripts need inside words are kept. The Text Cleaner has more options, but keeps U+2800 and single special spaces.
About the Invisible Character (Blank Text) Copy & Paste
Copy a character that looks empty: the Hangul filler (U+3164), the Braille pattern blank (U+2800), the zero-width space (U+200B), the word joiner (U+2060), the no-break space and the en and em spaces — plus less common blanks. Each comes with what it is good for and the facts that decide whether it works: whether it counts as a space (apps trim spaces), whether Unicode marks it as default-ignorable (apps may hide or remove it), what normalisation turns it into, and how X weighs it.
You can also make a run of any of them, and paste text into Reveal hidden characters to see every invisible character it contains, with its code — handy when a code will not paste, a search fails or a name looks blank. Copy without them gives you the same text with those characters removed; the Text Cleaner has more clean-up options.
How to use it
- Find the character you need under Copy a character and press Copy. The box beside each name shows how much room it takes.
- Need several? Use Make a run: choose the character and how many, optionally separated by spaces or line breaks, and copy the result.
- To check text for hidden characters, paste it into Reveal hidden characters. Each one is shown as a labelled marker, with a count of each kind.
- To remove them, press Copy without them: every marked character is dropped and special spaces become normal spaces, while tabs, emoji and the joiners some scripts need inside words are kept. For more clean-up options, press Clean in the Text Cleaner — your text opens there.
Examples
First paragraph ⠀ Second paragraph
The middle line holds U+2800, so it is not empty and is not removed.
Unicode notes that U+2800 is drawn as a blank in many fonts but does not act as a space.
482193
Reveal: 4821 [U+200B Zero-width space] 93
A zero-width space copied along with a code makes it 7 characters instead of 6, so it does not match.
Common uses
- Keeping blank lines in captions and bios.
- Wider gaps and indents in a single line, where normal spaces collapse.
- Finding the hidden character that breaks a password, coupon code, spreadsheet formula or search.
- Checking whether a “blank” name or message really contains something.
Which one should I use?
- Blank lines in captions and bios: U+2800 Braille pattern blank. It is a symbol, not a space, so “trim spaces” leaves it alone. The Instagram Line Break Generator inserts it for you.
- Something that must count as a letter: U+3164 Hangul filler. Unicode classes it as a letter, but also as default-ignorable, so some apps hide, flag or remove it.
- No visible room at all: U+200B zero-width space (allows a line break) or U+2060 word joiner (prevents one). Both are easy for apps to strip.
- A space that stays a space: U+00A0 no-break space, or the wider U+2002 en space and U+2003 em space. They are white space, so they are still trimmed at the start and end of text.
How platforms treat invisible characters
- Usernames and handles: X allows only letters A–Z, digits and underscores; Mastodon and Pinterest similar sets; Discord lowercase letters, digits, _ and .; Snapchat Latin letters, digits and - _ .; Facebook letters, digits and periods. None of these accept an invisible character, so a “blank” username is not possible there — the characters only matter in display names, bios and posts. The rules and sources are in Social Media Character Limits.
- Discord names: Discord’s developer documentation says names “can contain most valid unicode characters” but that it limits “some zero-width and non-rendering characters”.
- X posts: X’s open-source counting rules treat a post containing U+FEFF as invalid, and weigh characters: U+2000–U+200D (en and em spaces, the zero-width space) count 1, while U+2800, U+3164, U+2060 and U+3000 count 2.
- Bluesky and Mastodon count every invisible character towards the limit; Bluesky also counts bytes — U+2800, U+3164 and U+200B are 3 bytes each.
- Instagram, TikTok, Threads and YouTube do not document how they treat these characters, and behaviour can change between app versions. Test before relying on it.
What “trim” and normalisation do to them
Most software tidies text in two ways. Trimming removes white space at the start and end: no-break, en, em, thin and ideographic spaces are white space, so they go; U+2800, U+3164, U+200B and U+2060 are not, so they stay (JavaScript’s trim also removes U+FEFF). NFKC normalisation, used by some username and search systems, turns the special spaces into a normal space and U+3164 into U+1160, while U+2800, U+200B and U+2060 are left as they are. Each card shows both, computed by your browser from its Unicode data.
Limitations
- Whether a character shows as blank, as a box or not at all depends on the font, the app and the device.
- Apps can remove or reject invisible characters at any time; the notes above describe documented behaviour, not every app.
- Screen readers may announce some of these characters or skip them, so blank names and messages can confuse people who use them.
- The reveal view does not mark the joiners and selectors that are part of an emoji (as in 👩💻 or ❤️), because they are meant to be there.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
How do I make a blank name or message?
Copy the Hangul filler (U+3164) or the Braille pattern blank (U+2800) and paste it as the whole name or message. Whether it is accepted depends on the app: many reject names without visible letters, and usernames (handles) on the major platforms only allow letters, digits and a few symbols.
Why did my blank character disappear after posting?
The app probably trimmed it or removed invisible characters. No-break, en and em spaces are white space and are trimmed at the start and end of text; zero-width and default-ignorable characters are easy for apps to strip. U+2800 is the most likely to survive because it is a symbol, not a space.
Do invisible characters count towards character limits?
Yes, wherever they are kept. On X most count 1 or 2 (and U+FEFF makes a post invalid); on Bluesky each is one character and also 3 bytes of the 3,000-byte limit. Platforms that do not document how they count may count them differently or strip them.
How do I remove invisible characters from text?
Paste the text into Reveal hidden characters to see what is there, then press Copy without them to copy it with every marked character removed and special spaces made normal. The Text Cleaner also removes zero-width and control characters (and much more), but it keeps U+2800 and single no-break or other special spaces.
Is it safe to paste private text into the reveal box?
Yes. Everything happens in your browser; nothing is uploaded or stored. When you open the text in the Text Cleaner, it is handed over within this browser tab, not through a server.