Invisible Character Viewer

Paste any text to see the characters you can't — every hidden character revealed with its name and code point, counted, and stripped in one click. Free, private, runs in your browser.

The revealed view appears here — hidden characters show up as labeled badges.

What is an invisible character viewer?

An invisible character viewer is a tool that shows the characters in your text that never print on screen: zero-width spaces, non-breaking spaces, soft hyphens, byte order marks, word joiners, and bidi marks. These invisible characters ride along inside copied text — from websites, PDFs, Word documents, and AI chats — and you only notice them when something breaks. A viewer reveals each one with its Unicode code point and name, so you can see exactly what is inside.

You reach for one when text misbehaves: a paste breaks your layout, search finds nothing in a page you can read, code refuses to parse a file that looks clean, or two identical-looking strings fail a comparison. When you need to view invisible characters or detect invisible characters, guessing is over — the badge names the exact code point to remove.

How to find hidden characters in text

You don't need an editor setting or a hex dump to find hidden characters in text — this invisible character viewer online does it in place, in three steps:

  1. Paste your text into the box — from Word, a website, an email, an AI chat, or a code file.

  2. Every hidden character is revealed inline as a labeled badge: the code point on the badge, the full Unicode name on hover. The counter below the box lists each type and how many times it appears.

  3. Strip them all with one click, or copy the text and document exactly what was hiding inside.

What this viewer reveals: hidden Unicode characters list

Editors have a "show hidden characters" toggle, but it only makes spaces and paragraph marks visible. This viewer goes further and can show invisible characters no editor toggle reveals — zero-width joiners, bidi controls, word joiners, and the non-breaking spaces that look identical to regular ones. These are the hidden Unicode characters it flags, with the names the Unicode standard uses:

CharacterCode pointWhat it breaks
Zero-Width SpaceU+200BSearch matches, word counts, string comparisons
No-Break SpaceU+00A0Line wrapping, number parsing, trim() in code
Soft HyphenU+00ADSearch and copy-paste from PDFs and Word
Byte Order Mark (BOM)U+FEFFJSON parsing, CSV imports, shell scripts
Word JoinerU+2060Search-and-replace in CMS editors
Zero-Width Joiner / Non-JoinerU+200D / U+200CEmoji sequences, identifier matching
Bidi marks and embeddingsU+200E–U+200F, U+202A–U+202EText direction glitches, hidden reordering
Narrow, thin, en and em spacesU+202F, U+2009, U+2002, U+2003Alignment and parsing in spreadsheets
Ideographic SpaceU+3000CJK text pasted into Latin-only fields

Each badge in the revealed view names the exact code point, so a bug report or a replace rule can reference it precisely — no more "there's something weird in the string".

Invisible character detector for ChatGPT text

AI chat answers are the most common source of hidden characters today. ChatGPT and Claude output can carry zero-width spaces, non-breaking spaces after numbers and punctuation, and the occasional word joiner. When an AI answer breaks your Word layout or your CMS editor, an invisible character detector shows you exactly which characters came along for the ride.

People searching for an invisible text detector usually watched something break after a paste — this is the same tool. Viewing tells you what is there; for the full cleanup of an AI answer — hidden characters, Markdown symbols, smart quotes, em dashes — the AI Text Cleaner does it in one pass.

Clean the whole AI answer with our AI Text Cleaner — or read the guide: Invisible characters in AI text.

Hidden character detector for code and data files

A BOM at the start of a JSON file breaks JSON.parse. A non-breaking space inside a number makes spreadsheets and parsers reject it. Zero-width characters in a log line make grep miss a pattern you can see on screen. A hidden character detector is the fastest way to prove two lines really are different when they look identical.

Paste the suspicious line and the badges name the exact code point — add it to a lint rule or a replace call and the bug is gone for good. For whole documents, strip everything in one click instead of hunting character by character.

View or remove: what to do with what you find

This page is an invisible character viewer and remover in one: first you see what is inside, then you decide. Strip removes only the invisible characters — your words, spacing, and punctuation stay exactly as they were. That split matters: deleting the wrong thing (say, every space) would mangle the text, so removal here only ever touches characters you couldn't see anyway.

Need more than hidden characters gone? Remove Formatting strips Markdown symbols, HTML tags, and smart quotes; the AI Text Cleaner handles end-to-end cleanup of AI output.

Deeper cleanup: Remove Formatting · AI Text Cleaner · ChatGPT Watermark Remover

Invisible character viewer FAQ

How can I identify invisible characters in my text?

Paste your text into the viewer above. Every invisible character is revealed in place as a labeled badge — you see a U+200B where a zero-width space sits between two letters, or a U+00A0 where a non-breaking space hides between words. The counter below the box lists each type found and how many times it appears, so you can tell at a glance whether a string is clean. If the text came from a PDF, a website, or an AI chat, check the spots where words look glued together or where a line breaks oddly — that is where hidden characters usually sit.

Does ChatGPT generate hidden characters?

Sometimes, yes. ChatGPT, Claude, and other AI chats can emit zero-width spaces, non-breaking spaces, and other invisible Unicode characters inside otherwise normal answers — you only notice when a paste breaks your document layout, a search misses, or a checker flags odd characters. Paste any AI answer into this invisible character detector to see exactly which hidden characters it contains, then strip them in one click before the text goes anywhere else.

Can you give me a list of invisible Unicode characters?

The table above lists the ones this viewer detects — zero-width space (U+200B), zero-width joiner and non-joiner (U+200D, U+200C), no-break space (U+00A0), soft hyphen (U+00AD), word joiner (U+2060), byte order mark (U+FEFF), bidi marks (U+200E–U+200F, U+202A–U+202E), and the narrow, thin, en, em, and ideographic spaces — the characters that actually show up in copied text from websites, PDFs, Word, and AI chats. The rest of the Unicode list is rare in everyday pastes.

How do I type an invisible character?

You can't type one from a regular keyboard — invisible characters have no key. People who need one (for a blank username or an empty-looking message) copy it from a character tool instead. This page goes the other way: it finds and removes invisible characters already hiding in your text. If you pasted something that looks empty but still counts as characters, the viewer above will show you what it actually contains.

Is my text uploaded anywhere?

No. The viewer runs entirely in your browser — detection, counting, and stripping all happen locally with plain character rules. There are no server calls, no uploads, and no logs; you can disconnect from the internet after the page loads and everything still works. That makes it safe for contracts, unpublished drafts, and internal documents: the text you paste never leaves your device, and nothing is stored when you close the tab.

What's the difference between viewing and removing invisible characters?

Viewing shows you what is inside the text without changing it — each hidden character appears as a labeled badge with its code point and name, so you can document a bug or understand why a paste broke. Removing (the Strip button) deletes the zero-width and formatting characters and converts invisible spaces to regular spaces, leaving your words untouched. For anything beyond hidden characters — Markdown, HTML, smart quotes — use the Remove Formatting tool.

Why do hidden characters break search, code, and copy-paste?

Because computers compare bytes, not appearances. A zero-width space inside a word makes two identical-looking strings different, so search and find-and-replace miss. A non-breaking space inside a number is not a digit or a regular space, so parsers reject it. A BOM before a JSON brace is not valid JSON. And bidi marks can reorder what you see without changing what is stored. The characters are invisible to you, but every tool downstream sees them.