Invisible Character Remover
Shows you what is hidden in your text. Every zero-width space, byte order mark, soft hyphen, bidirectional override and Unicode tag character, listed by codepoint with a count and a position, then removed on request.
Findings
Each invisible character is named and listed with its codepoint, the number of times it appears, and the first three positions (line, column). A leading BOM is reported separately from mid-text BOMs.
| Name | Codepoint | Count | First positions |
|---|---|---|---|
| No text yet — paste something to begin. | |||
Reveal view (capped at 20,000 characters)
Each invisible character is replaced by a visible chip carrying its codepoint. A green chip is a zero-width joiner inside an emoji (preserved by default). A yellow chip is a leading BOM.
Hidden characters break search, break exact matching, survive copy and paste, and can carry a watermark. A zero-width joiner inside an emoji is load-bearing — removing it breaks the emoji. The tool detects that case and excludes those by default.
How to use the Invisible Character Remover
Paste your text on the left. The Findings table lists every invisible character by codepoint, with a count and the first three positions. The Reveal view shows where each one sits by replacing it with a coloured chip. The Cleaned output panel on the right has the version with the selected categories stripped.
Toggle the category checkboxes to control what is removed. The categories are grouped by intent: zero-width and BOM (common copy-paste debris), bidi (left-to-right and right-to-left marks), soft hyphen (U+00AD, often added by word processors), unusual spaces, and the Unicode tag range (U+E0000..U+E007F, used for invisible tagging).
Why is a zero-width joiner inside an emoji special?
A family emoji or a flag is built from several codepoints joined with U+200D (zero-width joiner). Removing the joiner breaks the emoji into the individual parts, which the reader sees as gibberish. The tool detects this case and excludes those ZWJs by default; you can turn the option off if you want a thorough sweep.
What about directional marks in Arabic, Hebrew or Urdu text?
Those marks can be deliberate — they tell the renderer which side of a foreign phrase to render on. The tool warns before removing them and reports how many were present. Turn the category on only if you know your text is not in a right-to-left script.
What does a leading BOM do?
A UTF-8 byte order mark at the very start of a file is normal — many Windows tools add one. It can confuse parsers, though, so the tool reports it separately from mid-text BOMs. Strip it only if you know your pipeline is not expecting one.