Skip to content

Invisible Character

Copy, reveal, and remove common invisible Unicode characters locally.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Choose a named character card and click Copy to place that exact Unicode character on your clipboard.
  2. 2.Paste text into the inspector to reveal any of the six listed characters with labels and code points.
  3. 3.Review the detections, then use Remove listed characters only when removing them is appropriate for the destination text.

About Invisible Character

Invisible Character is a local Unicode helper for situations where a blank-looking character matters. It offers six clearly named characters: no-break space (U+00A0), zero-width space (U+200B), zero-width non-joiner (U+200C), zero-width joiner (U+200D), word joiner (U+2060), and Hangul filler (U+3164). Each card shows its exact Unicode code point and a plain-language label, then copies that one character with a single click. This makes it easier to work deliberately instead of copying an unknown blank from a forum, social post, document, or chat message. The tool runs entirely in your browser. Text you paste for inspection is not sent to a server, and the page does not create an account, store a document, or upload clipboard contents.

The text inspector is deliberately narrow. It checks only the six characters shown by this page; it does not claim to find every Unicode character that could look empty, affect formatting, or be hidden by a particular font. When it finds a listed character, the Revealed text box replaces it with a readable marker such as [ZWSP], [NBSP], [ZWNJ], [ZWJ], [WJ], or [HF]. The table also gives each detection a one-based Unicode code-point position and its code point. That lets you compare two strings that look identical, locate an unexpected joiner inside a name, or see why copied text behaves differently after pasting. Emoji and other supplementary characters are counted safely as Unicode code points for the displayed position, rather than being split into two browser UTF-16 units.

Use the Remove listed characters button when you need a cleaned version of text. It removes only the six characters this tool advertises and preserves ordinary spaces, tabs, line breaks, punctuation, letters, emoji, and other Unicode characters. This is important because not every non-printing character is an error. A zero-width non-joiner or joiner can be meaningful in languages with shaping behavior, a no-break space can be necessary in typography, and a word joiner may be used to keep terms together. Review the revealed version before removing anything from names, code, addresses, quoted material, or text in a language you do not read. The original text remains in the input until you choose removal, and you can copy the revealed labels or edit the input again.

Rendering is not a guarantee of behavior. A character may appear blank in one font, show a replacement glyph in another, be stripped by a website, be normalized by an editor, or have different line-breaking and accessibility effects across platforms. Invisible controls can also affect search, copy and paste, identifiers, moderation, and screen-reader pronunciation. Do not use this page to disguise text, evade rules, impersonate a person, or bypass validation. For legitimate formatting work, test the copied character in the destination application and with the audience that matters. If a system needs a visible separator, prefer an ordinary visible character instead of relying on a blank-looking one.

A practical workflow is to pick a named character only when the destination documentation allows it, paste it into a test field, then inspect the final text before publishing. If something already looks suspicious, paste it here, read the marker labels and code points, remove only the listed characters you do not want, and paste the cleaned result back into the source application. This focused tool gives you a private way to understand common invisible Unicode characters without claiming that every app, font, language, or assistive technology will interpret them the same way.

Methodology & sources

The client iterates text with Array.from so detection follows Unicode code points rather than splitting surrogate pairs. A fixed six-character map drives copying, detection, readable markers, code-point reporting, and removal. Removal filters only those exact code points; it does not normalize or alter any other whitespace or Unicode character.

Frequently asked questions

Which invisible characters does this tool detect?
It detects the six characters shown on the page: no-break space, zero-width space, zero-width non-joiner, zero-width joiner, word joiner, and Hangul filler. It does not claim to detect every blank-looking Unicode character.
Why does a character look different in another app?
Fonts, operating systems, browsers, editors, language rules, and accessibility software can render or process the same Unicode code point differently. Test it in the destination application.
Does Remove listed characters delete normal spaces or line breaks?
No. It removes only the six explicitly listed characters and preserves ordinary spaces, tabs, line breaks, and all other text.
Is pasted text uploaded or saved?
No. Copying, inspection, revealing, and removal run locally in the browser.

Text Tools guides

View all