CopyClean
How-to

How to see hidden characters in any text: 5 free ways

Five free ways to reveal invisible Unicode in a string: editor settings, regex, hex dumps, online inspectors, and automatic clipboard cleaning on macOS.

February 18, 2026 · 3 min read · CopyClean Blog

You cannot fix what you cannot see. When a string misbehaves - a search that will not match, a form that rejects clean-looking input, a diff with no visible change - the first step is making the invisible visible. Here are five ways to do that, from zero-install to fully automatic.

1. Your code editor's invisibles mode

Every serious editor can render invisible characters; most hide the setting.

  • VS Code highlights many invisible and confusable characters out of the box (editor.unicodeHighlight), drawing a box around characters like U+200B. It is the fastest "wait, what is that" detector in daily use.
  • Sublime Text shows them via draw_unicode_white_space.
  • BBEdit has View > Text Display > Show Invisibles.
  • JetBrains IDEs render a highlighted escape for non-ASCII spaces in recent versions.

Editor rendering is ideal for code, because you stay exactly where the bug is.

2. A regex sweep

If you suspect a specific character, search for it directly. In any regex-capable find dialog:

[​‌‍⁠  ­]

That one class catches the usual suspects: zero-width space, the joiners, the word joiner, the byte-order mark, the non-breaking and narrow no-break spaces, and the soft hyphen. It will not catch everything (Unicode has hundreds of format characters), but it finds the characters responsible for most real-world breakage.

3. A hex dump

The ground truth. On macOS, pipe the text through hexdump:

pbpaste | hexdump -C | head

A zero-width space appears as the UTF-8 bytes e2 80 8b; a narrow no-break space as e2 80 af. Nothing can hide from a byte listing, which makes this the method of record when you need certainty, and the least convenient one for everyday use.

4. An online inspector

Paste-in web tools will list every code point in a string with names. They are quick and require nothing installed. Two caveats worth knowing. First, you are pasting your text into someone's website, which is a strange move if the text is private (some tools process locally in the browser; verify before trusting). Second, they tell you what is there; removing it and re-copying is still on you, every single time.

5. Clean the clipboard automatically

The four methods above are diagnosis. If you find yourself diagnosing weekly, treat the cause instead: clean text at the moment it enters your clipboard, which is the one checkpoint every paste passes through.

That is what CopyClean does on macOS: the instant you copy, it removes invisible junk (and, if you want, AI typography tells and link trackers) while preserving the invisible characters that carry real meaning: Thai word breaks, Arabic directional marks, the joiners inside emoji. There is nothing to paste into and nothing to remember. The menu bar icon sparkles, and a counter tells you what it caught.

Which one should you use?

For a one-off mystery: the hex dump settles arguments. For code: your editor's highlighting, permanently on. For everything that passes through your clipboard all day: automate it. Invisible characters are not rare events; they are a constant, low-level leak in copy-paste itself. See the full field guide for what, exactly, is leaking.

Clean every copy, automatically CopyClean removes hidden characters, AI typography and link trackers the instant you copy. Free 7-day trial, then 12.99 USD once. macOS 14+.
Download on theMac App Store