Logo

MonoCalc

/

Invisible Character Generator

Text
Generate a blank character, audit pasted text for hidden characters, or hide and recover a short message.

Favourites:

The most widely used blank. Allows a line break without a visible gap, and is accepted by many chat apps where a plain space is trimmed.
How many copies to output (1–10,000).
Decimal places used for sizes and percentages.

Generated output — the box below really does contain 1 character

Code Points
1
1 UTF-16 units

UTF-8 Bytes

3
3 B
UTF-16 / UTF-32
2 / 4
bytes
Rendered Width
Zero width
Zs

Every representation of U+200B

FormatValueCopy
JavaScript / Java escape (\uXXXX)\u200B
Regex / Perl escape (\x{XXXX})\x{200B}
HTML entity (named where available)​
HTML entity (decimal)​
HTML entity (hex)​
URL percent-encoded%E2%80%8B
Decimal code point8203
Binary code point10000000001011
Base64 of UTF-8 bytes4oCL

Where ZERO WIDTH SPACE usually survives

Chat & social

Usually kept

Sign-up forms

Sometimes stripped

HTML & editors

Usually kept

Spreadsheets

Sometimes stripped

Character catalogue — tap a card to use it

U+200B

ZWSP

ZERO WIDTH SPACE

Zero width · Zero-width & format

U+200C

ZWNJ

ZERO WIDTH NON-JOINER

Zero width · Zero-width & format

U+200D

ZWJ

ZERO WIDTH JOINER

Zero width · Zero-width & format

U+2060

WJ

WORD JOINER

Zero width · Zero-width & format

U+2061

FA

FUNCTION APPLICATION

Zero width · Zero-width & format

U+2062

IT

INVISIBLE TIMES

Zero width · Zero-width & format

U+FEFF

BOM

ZERO WIDTH NO-BREAK SPACE (BOM)

Zero width · Byte order mark

U+3164

HF

HANGUL FILLER

Full width · Blank-width fillers

U+FFA0

HWHF

HALFWIDTH HANGUL FILLER

Normal width · Blank-width fillers

U+115F

CF

HANGUL CHOSEONG FILLER

Full width · Blank-width fillers

U+1160

JF

HANGUL JUNGSEONG FILLER

Zero width · Blank-width fillers

U+2800

BRB

BRAILLE PATTERN BLANK

Normal width · Blank-width fillers

U+00A0

NBSP

NO-BREAK SPACE

Normal width · Unusual spaces

U+2002

ENSP

EN SPACE

Normal width · Unusual spaces

U+2003

EMSP

EM SPACE

Full width · Unusual spaces

U+2007

FIGSP

FIGURE SPACE

Normal width · Unusual spaces

U+200A

HSP

HAIR SPACE

Thin width · Unusual spaces

U+202F

NNBSP

NARROW NO-BREAK SPACE

Thin width · Unusual spaces

U+205F

MMSP

MEDIUM MATHEMATICAL SPACE

Thin width · Unusual spaces

U+3000

IDSP

IDEOGRAPHIC SPACE

Full width · Unusual spaces

U+1680

OGSP

OGHAM SPACE MARK

Normal width · Unusual spaces

U+00AD

SHY

SOFT HYPHEN

Zero width · Soft hyphen

U+180E

MVS

MONGOLIAN VOWEL SEPARATOR

Zero width · Zero-width & format

U+034F

CGJ

COMBINING GRAPHEME JOINER

Zero width · Invisible combining marks

U+FE0E

VS15

VARIATION SELECTOR-15

Zero width · Variation selectors

U+FE0F

VS16

VARIATION SELECTOR-16

Zero width · Variation selectors

U+200E

LRM

LEFT-TO-RIGHT MARK

Zero width · Bidirectional controls

U+200F

RLM

RIGHT-TO-LEFT MARK

Zero width · Bidirectional controls

U+202A

LRE

LEFT-TO-RIGHT EMBEDDING

Zero width · Bidirectional controls

U+202B

RLE

RIGHT-TO-LEFT EMBEDDING

Zero width · Bidirectional controls

U+202C

PDF

POP DIRECTIONAL FORMATTING

Zero width · Bidirectional controls

U+202D

LRO

LEFT-TO-RIGHT OVERRIDE

Zero width · Bidirectional controls

U+202E

RLO

RIGHT-TO-LEFT OVERRIDE

Zero width · Bidirectional controls

U+2066

LRI

LEFT-TO-RIGHT ISOLATE

Zero width · Bidirectional controls

U+2067

RLI

RIGHT-TO-LEFT ISOLATE

Zero width · Bidirectional controls

U+2068

FSI

FIRST STRONG ISOLATE

Zero width · Bidirectional controls

U+2069

PDI

POP DIRECTIONAL ISOLATE

Zero width · Bidirectional controls

About This Tool

Invisible Character Generator – Blank Text You Can Copy

Some places refuse an empty value but happily accept a character that draws nothing. That is the whole idea behind an invisible character generator: it produces real, standards-compliant Unicode text that occupies no visible glyph. Copy one character for a blank nickname, a blank message, an empty bio line, a placeholder in a form that rejects nothing, or a spreadsheet cell that must look empty but still count as filled. The same page also works in reverse — paste any text and it reveals every hidden character it carries.

Which invisible character should you use?

There is no single "blank character" in Unicode. Different code points are blank for different reasons, and platforms treat them differently. Zero-width format characters are the most invisible but the most likely to be stripped by input sanitisers; blank-width letters such as the Hangul fillers are technically letters, so validators that require a real character accept them.

Code pointNameBest for
U+200BZero Width SpaceGeneral-purpose blank, chat messages
U+3164Hangul FillerBlank usernames and game nicknames
U+2060Word JoinerPreventing a line break with no width
U+00A0No-Break SpaceVisible-width spacing that never collapses
U+FEFFByte Order MarkLegacy files — usually best removed

How the generator works

Pick a code point, choose how many copies you want, and the tool builds the string with String.fromCodePoint(cp).repeat(count). The result appears in a dashed box so you can see the extent of something that renders as nothing, and the copy button reports exactly what landed on your clipboard. Because an invisible string is impossible to proofread visually, the tool also shows its length three ways — code points, UTF-16 code units and UTF-8 bytes — so you can confirm you copied one character rather than none or twenty.

Mixed mode draws each character at random from several code points, which helps when a platform blocks one specific character but not its neighbours. If you need the character inside code rather than on a clipboard, the format table gives you the \u200B escape, the regex form \x{200B}, the HTML entities ​ and ​, the URL form %E2%80%8B and a Base64 encoding of the UTF-8 bytes.

Detecting and cleaning hidden characters

Invisible characters are also a debugging problem. They are the usual reason two strings that look identical fail an equality test, why a trimmed input still fails validation, why a CSV import produces a column header nobody recognises, and why a copied password is rejected. Detect mode walks your text one code point at a time and reports every hidden character with its index, code point, Unicode name, class and severity, while the annotated preview replaces each one with a visible badge such as [ZWSP] or [BOM].

Clean mode then removes only the classes you tick — zero-width and format characters, the byte order mark, bidirectional controls, soft hyphens, variation selectors, unusual spaces, control characters or tag characters — and reports the byte size before and after. Turning on normalize spaces maps exotic spaces such as U+00A0, U+2007 and U+3000 to a plain U+0020 instead of deleting them, which is usually what you want when cleaning pasted prose rather than an identifier.

Watch for bidirectional overrides
Characters such as U+202E reverse how the text after them is displayed without changing what a program reads. This is the mechanism behind Trojan Source attacks in source code and disguised file extensions, so the scanner marks them as high severity. Treat any text that contains them with suspicion before pasting it into a terminal, a repository or an AI prompt.

Zero-width steganography

Encode mode hides a short message by turning it into UTF-8 bits, mapping each 0 to U+200B and each 1 to U+200C, closing the run with U+200D and inserting it after the first word of your cover text. Decode mode reverses the mapping. It is a neat way to watermark a document or trace which copy of a message leaked, but it is obfuscation rather than encryption — the payload is trivially visible to anyone who runs a detection scan.

Practical tips

Keep runs short: a single character is enough for most blank-name use cases, and long runs are frequently truncated. If a platform rejects your blank text, try a different class of character rather than more copies. Remember that invisible characters still consume bytes — a zero-width space costs three bytes in UTF-8 — so they count against message and column length limits even though nothing is drawn. Everything on this page runs entirely in your browser, so pasting sensitive text into the scanner never sends it anywhere.

Frequently Asked Questions

Is the Invisible Character Generator free?

Yes, Invisible Character Generator is totally free :)

Can I use the Invisible Character Generator offline?

Yes, you can install the webapp as PWA.

Is it safe to use Invisible Character Generator?

Yes, any data related to Invisible Character Generator only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the Invisible Character Generator work?

Pick a blank Unicode character such as U+200B Zero Width Space or U+3164 Hangul Filler and the tool builds a string from it with String.fromCodePoint, repeated as many times as you ask for. The same catalogue powers Detect mode, which walks your pasted text code point by code point and flags anything that renders as nothing. Everything runs in your browser, so no text is uploaded.

Which invisible character works for a blank username or nickname?

U+3164 Hangul Filler is the most reliable choice because it is categorised as a letter, so validators that demand a real character accept it while it still renders blank. U+200B Zero Width Space is the next best option and works in most chat apps, but some sign-up forms strip it before validation. If one is rejected, try U+2060 Word Joiner or U+FFA0 Halfwidth Hangul Filler.

Why did my invisible character disappear after I pasted it?

Many platforms run Unicode sanitisers that delete format characters, trim whitespace or normalise the string before saving it. Zero-width format characters (category Cf) are the first to go, while blank-width letters such as the Hangul fillers usually survive. The compatibility notes next to each character show where it typically works and where it is likely to be stripped.

How do I find hidden characters in text I received?

Switch to Detect and Clean mode and paste the text. Every hidden character is listed with its index, code point, Unicode name and a severity rating, and the annotated preview replaces each one with a visible badge so you can see exactly where they sit. Clean mode then removes the categories you select and reports how many bytes were saved.

Are invisible characters a security risk?

They can be. Bidirectional overrides such as U+202E reverse how text is displayed and underpin Trojan Source attacks and disguised file extensions, while tag characters in the U+E0000 block are used to smuggle hidden instructions into copied text. This tool marks both classes as high severity so you can spot them before pasting text into code, a terminal or an AI prompt.

How does the zero-width steganography mode work?

Your secret message is converted to UTF-8 bytes, each bit becomes U+200B for 0 or U+200C for 1, and a U+200D terminator closes the run before it is inserted after the first word of the cover text. Decode mode reverses the mapping and rebuilds the bytes. It is a fun watermarking trick rather than encryption — anyone who runs the text through Detect mode can see that a payload is present.