Skip to site navigation
Text

Invisible character for Discord

The one that works in a Discord name is U+3164. Here is why the one you tried did not, and what to do when a blank nickname resets itself.

Hangul FillerU+3164

The brackets are drawn by this page. Only what sits between them is copied.

Which invisible character Discord accepts, and which it strips

The column that decides whether a blank username works is Trimmed, not width. Anything counted as whitespace is stripped from the ends of a field before the site checks whether you left it empty. The two at the top are not whitespace, which is why they survive. One catch worth knowing: U+FEFF is zero width but browsers still trim it, because JavaScript counts it as whitespace even though Unicode does not.

CharacterCodeWidthTrimmed
[]Lo
U+3164wideno
The default choice for a blank username. Unicode files it as a letter, not a space, so trimming and empty-field checks both let it through, and it renders as blank space in essentially every font that ships on phones. It is a full-width character, so one of these is about as wide as two Latin letters. Fields with a tight character limit fill up faster than the blank space suggests.
[]So
U+2800narrowno
The narrower alternative when U+3164 is too wide. Also not a space by Unicode's reckoning, so it survives trimming the same way. Font coverage is good but not universal. On a device with no braille-capable font it can come out as a hollow box.
[]Cf
U+200Bzerono
Takes up no width at all. Its real use is inserting a break opportunity inside a long word, or separating two characters that would otherwise combine. The most widely known invisible character and therefore the most widely filtered. Discord and Instagram both strip it from names in many places, which is usually why a tutorial that says to use this one no longer works.
[]Cf
U+200Czerono
Stops two adjacent characters from forming a ligature or joined form. Genuinely load-bearing in Persian and Hindi text, which is part of why platforms are slower to filter it out.
[]Cf
U+200Dzerono
The opposite of the non-joiner, and the glue inside multi-part emoji. A family emoji is several people joined by these. Because emoji depend on it, pasting one next to an emoji can change which emoji you get rather than adding blank space.
[]Cf
U+2060zerono
Zero width, and specifically forbids a line break at that point. The modern replacement for using U+FEFF as a no-break marker.
[]Cf
U+2063zerono
Intended for mathematical notation, as an invisible comma between indices. Rarely filtered precisely because almost nobody uses it.
[]Cf
U+FEFFzeroyes
The byte order mark. Zero width, and historically used the way U+2060 is used now. Riskiest one here, and the one exception to the rule that zero-width characters survive trimming: JavaScript counts it as whitespace even though Unicode does not, so browser-side validation strips it from the ends of a field. On top of that, many tools read it as an encoding marker rather than text. Use U+2060 instead unless you specifically want a BOM.
[ ]Zs
U+00A0narrowyes
A normal-looking space that will not break across lines. Good for keeping a number next to its unit; not useful for a blank name. Unicode counts it as whitespace, so trimming removes it from the ends of a field.
[]Zs
U+2003wideyes
A fixed-width space as wide as the font size. Useful for indentation that survives a copy and paste. Whitespace, so it is trimmed from the ends of a field.
[ ]Zs
U+3000wideyes
The full-width space used in Chinese, Japanese and Korean typesetting. The widest single blank here. Whitespace, so it is trimmed from the ends of a field.

Check what you are about to paste into Discord

Paste back into this box and it will name every invisible character it finds. Nothing typed here leaves your device.


Mechanism

Why Discord rejects some invisible characters and accepts others

Discord trims a name before it validates it, then refuses the result if nothing is left. A space character is whitespace by Unicode's definition, so it gets trimmed away and the name reads as empty — that is the rejection most people hit first. U+200B is not whitespace, but it is the best known invisible character and Discord filters it explicitly in several fields. U+3164 is neither: Unicode files it as a Hangul letter, so trimming ignores it, the emptiness check passes, and it is not on the filter list. Server nicknames, channel names and message bodies each run slightly different validation, which is why a character that works in one can still fail in another.

Limits

What it cannot do

  • Discord changes these filters without notice. A character that works today can stop working after an update, which is why this page names the mechanism rather than promising a result.
  • Server moderation bots frequently auto-rename members whose names start with invisible characters, since it pushes them to the top of the member list. That is a bot rule, not a Discord one, and nothing here gets around it.
  • A fully blank name is unreadable to screen reader users and hard for moderators to reference. Some servers ban it in their rules.
Questions

Questions people actually ask

Why does my blank Discord nickname keep resetting?
If it reverts within seconds of being set, a moderation bot is doing it — several popular ones auto-rename members with leading invisible characters because it sorts them to the top of the member list. If it is rejected outright at the moment you save, the character you used was whitespace or U+200B, and the fix is U+3164.
How do I send an empty message on Discord?
Paste one or more copies of U+3164 as the whole message. A message of pure spaces gets trimmed and refused, which is the same trap as the name field. Bear in mind that repeatedly sending blank messages reads as spam to most moderation setups.