3tej home
← Writing & Text

What is Invisible Character Generator?

A Invisible Character Generator produces a invisible character on demand, using a deterministic algorithm or a cryptographically strong random source. Output is generated entirely in your browser so nothing is sent to a server. Copy-paste to send blank Discord/WhatsApp messages or bypass empty-field validation.

Invisible Character Generator

Generate invisible Unicode characters and zero-width spaces - useful for sending blank messages, padding usernames, or bypassing "no empty input" form validation.

About invisible characters

Invisible characters are Unicode codepoints that render with zero width but count as text. They occupy a string position, defeat empty-input validation, and pass through copy-paste, yet display nothing on screen. The generator exposes the dozen reliable invisibles drawn from four blocks: General Punctuation (zero-width space, joiner, non-joiner), Arabic Presentation Forms (zero-width no-break space / BOM), Hangul Compatibility Jamo (Hangul Filler), and the deprecated Mongolian Vowel Separator.

How it works

The tool is a static catalog. Each entry in the catalog is a single Unicode codepoint whose Bidi class or General Category places it in the "format" or "spacing" category, meaning the renderer reserves no advance width for it. Click any entry and the page writes the codepoint to the clipboard via the Clipboard API.

// Pseudo-code: catalog selection
catalog = [
  {label: "Zero-Width Space",       cp: U+200B, gc: "Cf"},
  {label: "Zero-Width Non-Joiner",  cp: U+200C, gc: "Cf"},
  {label: "Zero-Width Joiner",      cp: U+200D, gc: "Cf"},
  {label: "Word Joiner",            cp: U+2060, gc: "Cf"},
  {label: "Zero-Width No-Break Space (BOM)", cp: U+FEFF, gc: "Cf"},
  {label: "Hangul Filler",          cp: U+3164, gc: "Lo"},
  {label: "Mongolian Vowel Separator", cp: U+180E, gc: "Cn" (deprecated)},
  {label: "Combining Grapheme Joiner", cp: U+034F, gc: "Mn"},
  ...
]

// Click handler:
copy(codepoint) -> navigator.clipboard.writeText(String.fromCodePoint(codepoint))

The General Category determines how downstream systems treat the character. Cf (Format) codepoints are stripped by NFKC normalisation. Mn (Nonspacing Mark) codepoints are kept by normalisation but rendered at zero width. Lo (Letter, other) like Hangul Filler U+3164 is treated as a printable letter and survives more validation paths than the Cf codepoints.

Worked example

Suppose Discord rejects a blank message but you want to post a spacer to break up a long block of replies. Click the Hangul Filler row to copy U+3164:

  1. Clipboard now contains a 1-codepoint string with byte sequence E3 85 A4 (UTF-8 for U+3164).
  2. Paste into the Discord message box. The input shows nothing visible but the send button enables because the field is not empty.
  3. Press send. The message posts as a blank line in the channel; the underlying message body is the single Hangul Filler codepoint, which Discord stores and rebroadcasts intact.
  4. For a 2-line blank message, paste two Hangul Fillers separated by a newline (Shift+Enter).
Result: Receivers see a blank message because U+3164 renders as zero width in their Discord client. Anti-spam filters that strip Cf-class codepoints (zero-width space etc.) still let U+3164 through because it is classified as Lo (Letter, other), not Cf. Trade-off: search and quoting will reproduce the invisible character, so a reply that quotes your blank message also looks blank.

Invisible codepoint reference

The most useful invisible codepoints for empty-message tricks and zero-width tracking are listed below with their Unicode General Category and platform support notes.

NameCodepointGeneral CategoryCommon use / notes
Zero-Width SpaceU+200BCfWord-break hint; stripped by NFKC; used by spambots
Zero-Width Non-JoinerU+200CCfBreaks ligatures (Persian, Arabic typography)
Zero-Width JoinerU+200DCfBuilds compound emoji (family ZWJ sequences)
Word JoinerU+2060CfNo-break version of U+200B
Zero-Width No-Break Space / BOMU+FEFFCfByte-order mark at file start; invisible mid-text
Hangul FillerU+3164LoTreated as a letter; best for blank messages
Mongolian Vowel SeparatorU+180ECnReclassified Cf -> Cn in Unicode 6.3.0; deprecated
Combining Grapheme JoinerU+034FMnAffects collation, not rendering
Left-to-Right MarkU+200ECfBidi override; invisible directional control
Right-to-Left MarkU+200FCfBidi override; can hide text past it on some renderers

Common pitfalls and limitations

  • Spambot weaponisation. Zero-width characters are the standard tool for evading keyword filters in phishing emails, romance scams, and spam comments. Inserting U+200B into "paypal" produces a string that looks identical but fails a literal "paypal" substring match. Most security vendors normalise the input by stripping these codepoints before pattern matching, but DIY filters often miss the trick.
  • Platform countermeasures. Twitter/X strips all Cf-class codepoints from posts as of 2023. Reddit's automod removes U+200B from comments. Telegram blocks U+180E and U+202E (right-to-left override). The reliable codepoint as of 2026 is U+3164 Hangul Filler, but platforms can change this at any time.
  • Screen reader silence. NVDA, VoiceOver, and JAWS skip Cf-class codepoints entirely, so an invisible-character message reads as silent. Some screen readers announce the count of invisibles ("zero-width space, zero-width space, ...") in verbose modes, which is jarring for blind users.
  • Right-to-left override abuse. U+202E (Right-to-Left Override) is occasionally listed alongside zero-width characters but is dangerous: a filename like "documentcod.exe" with U+202E inserted before "cod" displays as "documentexe.doc", a known malware vector. Avoid this codepoint outside of legitimate Arabic/Hebrew text.
  • Domain confusables. RFC 5891 (IDNA 2008) and Unicode's Confusables file flag zero-width characters as forbidden in domain names because the empty string in front of an A or B character is exploitable for IDN homograph attacks. ICANN registries reject them at registration.

Frequently asked questions

Which invisible character should I use for a blank Discord or WhatsApp message?

Hangul Filler (U+3164) is the most reliable across platforms because it is treated as a printable character (not a control codepoint) by most validators while rendering as nothing. Zero-Width Space (U+200B) works on Discord, WhatsApp, and Telegram but is stripped by some moderation filters. Mongolian Vowel Separator (U+180E) used to work but was reclassified from Cf to Cn in Unicode 6.3.0 and is now blocked on Telegram and X.

Are invisible characters used by spam bots and phishers?

Yes. Zero-Width Space and Zero-Width Joiner (U+200D) are routinely inserted into spam emails to defeat keyword filters: payp[U+200B]al evades a "paypal" substring match. Phishing sites use zero-width characters in domain Punycode to create lookalike URLs. Most modern security tools (Microsoft Defender, Google's Safe Browsing) normalise the input by stripping these codepoints before pattern matching.

Will invisible characters get me banned on social platforms?

It varies. Discord and WhatsApp tolerate small numbers. Twitter/X auto-strips most invisible characters from posts as of 2023. Instagram allows them in bios but flags large counts in comments as spam. Reddit treats zero-width characters as part of the comment, but its automod and many subreddit-specific filters remove them. Stick to one or two invisible characters per message.

How do I detect or strip invisible characters from text I receive?

Filter out codepoints in the Unicode general categories Cf (Format) and Mn (Nonspacing Mark), plus the explicit zero-width characters U+200B to U+200F, U+202A to U+202E, U+2060 to U+2064, U+FEFF, and U+3164. In Python: text = ''.join(c for c in text if unicodedata.category(c) not in ('Cf', 'Mn')). In JavaScript: text.replace(/[​-‏‪-‮⁠-⁤ㅤ]/g, '').

Sources and further reading

  • Unicode Consortium (2024) General Punctuation, U+2000 to U+206F.
  • Unicode Consortium (2024) UAX #9 Unicode Bidirectional Algorithm.
  • Unicode Consortium (2024) UAX #15 Unicode Normalization Forms (NFKC removes most Cf codepoints).
  • IETF (2010) RFC 5891 Internationalized Domain Names in Applications (IDNA): Protocol.
  • Unicode Consortium (2024) UTS #39 Unicode Security Mechanisms.

Last updated 2026-05-28.

CT
3Tej Editorial
Free, browser-based tools - no signup, no tracking.