# Zero-Width Character Detector / Decoder

Canonical URL: https://offlineutils.com/zero-width-decoder
Category: Codes & Ciphers
Published: 2026-10-24
Publisher: offlineutils.com
Runs entirely in the browser; nothing entered into the tool is uploaded.

> A zero-width character detector finds the invisible Unicode characters — zero width spaces, joiners, direction marks — that can sit inside ordinary-looking text, shows exactly where they are, and decodes any message they carry using the schemes steganography tools actually use, entirely in your browser.

Unicode has a family of characters that render as nothing at all. Most have real jobs: the zero width joiner glues 👨‍👩‍👧 into one family emoji, the non-joiner controls letter shapes in Persian and Indic scripts, and direction marks keep mixed Arabic and English in order. But because they're invisible, a sentence can carry hundreds of them without looking any different — which makes them a favourite of CTF challenges, a way to fingerprint which copy of a document leaked, and the reason two identical-looking usernames can be different strings.

This tool shows them first: how many there are, which ones, and where each sits, marked inline, plus the text with all of them removed. Then it tries to decode them. Most zero-width puzzles are made with 330k's Unicode Steganography tool, which writes each character of the message in base N using N chosen invisible characters as digits, so the decoder reproduces that scheme exactly, including its choice of digit order. It also tries plain binary — one character for 0 and another for 1, eight bits per byte of UTF-8 — in both polarities, and binary with a third character separating one letter from the next. The readings are ranked by how English they look.

Going the other way, it hides a message in a cover text either way: 330k-compatible, so that tool's decoder can read it, or as binary with zero width spaces and non-joiners. The result looks identical to the cover. Some platforms strip invisible characters when you paste, so it's worth checking a hidden message survives wherever you're putting it — and if you're receiving text rather than sending it, the visible-text-only copy is a quick way to clean it.

## Features

- Counts and marks every invisible character: zero width spaces and joiners, direction marks, word joiners, BOM and more
- Decodes 330k Unicode Steganography output exactly, in text and binary modes
- Tries binary schemes in both polarities, with or without a separator character
- Ranks readings by how English they look
- Strips every invisible character, leaving only the visible text
- Hides a message in a cover text, 330k-compatible or as binary

## Use cases

- Solving a CTF challenge whose text is suspiciously long when you count characters
- Checking a document or message for invisible fingerprinting before you share it
- Finding out why two strings that look identical don't compare equal
- Cleaning invisible characters out of pasted text

## How to use it

1. **Paste the text** — The count and the inline markers show at once whether anything is hidden, and where.
2. **Read the decoded message** — 330k's scheme and the binary schemes are all tried, most English-looking first.
3. **Clean or keep** — Copy the visible-text-only version to strip every invisible character.
4. **Hide your own** — Switch to Hide a message, write a cover text and a secret, and copy the result.

## When to use it, and when to use something else

- **vs 330k's Unicode Steganography tool** — use Zero-Width Character Detector / Decoder when you don't know which characters or settings were used, or the message isn't from 330k at all. Use 330k's Unicode Steganography tool when you know the exact character set and want its finer options for encoding.
- **vs Searching for \u200b in an editor** — use Zero-Width Character Detector / Decoder when you need every kind of invisible character found, not just one, and the message decoded. Use Searching for \u200b in an editor when you're cleaning a file you're already editing.

## Frequently asked questions

### How do I find zero-width characters in text?

Paste the text here. The tool counts every invisible character it knows — zero width spaces and joiners, direction marks, word joiners, the byte-order mark and others — and shows each one inline as a marker such as ⟨ZWSP⟩, so you can see exactly where they sit. A text that's longer than it looks, or two strings that look identical but don't match, are the usual signs.

### How do I decode a hidden zero-width message?

Paste the text and read the first result. Most zero-width puzzles are made with 330k's Unicode Steganography tool, which writes the message in base N using N invisible characters as digits; this decoder reproduces its scheme exactly. It also tries binary, with one character for 0 and another for 1, both ways round, and binary with a separator between letters, and ranks the readings by how English they look.

### Are zero-width characters always suspicious?

No. The zero width joiner builds emoji like 👨‍👩‍👧 and family or skin-tone sequences, the non-joiner is part of normal Persian and Indic typing, and direction marks keep mixed right-to-left and left-to-right text in order. A few in the right places are normal. Long runs between ordinary English words, or characters that decode to text, are not.

### Can invisible characters reveal who leaked a document?

They can. Giving each recipient a copy with a different invisible sequence lets the owner tell which copy turned up publicly — and because the characters survive copy and paste in many apps, retyping is the only sure way around it. This tool reveals such sequences and strips them, though fingerprinting can also hide in spacing or word choice, which no character scan will find.

### Will a zero-width message survive being pasted?

Often, but not everywhere. Many editors and chat apps keep invisible characters, while some platforms strip or normalise them, and domain names discard several outright — UTS #46 maps the zero width space to nothing. Hide the message, paste it where it's going, then paste it back here to check it's intact.

## Related tools

- https://offlineutils.com/bacon-cipher
- https://offlineutils.com/punycode-converter
- https://offlineutils.com/polybius-square
