UNICODE TEXT INSPECTOR
Zero Width Space
Find invisible characters by position, review them, then remove only what you choose.
Default selection: ZERO WIDTH SPACE. Other findings stay selected or unselected as shown below; joiners and direction controls can affect writing systems and emoji, so review before removing them.
Findings
Paste text to scan.| Remove | Position | Character | Context |
|---|---|---|---|
| No text scanned yet. | |||
No changes made.
SCOPE
What this zero width space checker finds
The scanner checks the explicit Unicode code points listed in the reference table below. It reports positions using one-based Unicode code-point indexes, not UTF-16 code-unit offsets. A character may be invisible yet intentional: inspect the context before copying a cleaned result.
The default removal selection targets U+200B ZERO WIDTH SPACE only. Other characters are detected for review; joiners, direction marks, and invisible operators can carry text or layout semantics.
METHOD
How positions and removal work
Input is read as Unicode code points in this tab. Each matching occurrence gets a one-based position and a short surrounding context. “Remove selected” removes the checked code-point types from the original input; “Copy cleaned text” copies that result. No file is uploaded and no text is sent to a server.
Removing U+200D ZERO WIDTH JOINER can split an emoji sequence, while removing U+200C ZERO WIDTH NON-JOINER or direction controls can change shaping or reading order. U+FEFF can be a byte-order mark at the start of a stream, so it is listed separately and is not selected by default.
REPRODUCIBLE CHECKS
Live browser test log
Run in Chrome against this page’s Cloudflare Pages preview on September 25, 2026. Inputs were synthetic strings entered directly into this tool. These checks cover position reporting, default selection, removal, and copy status; they do not measure how another app or clipboard workflow preserves characters.
| Synthetic input (escape notation) | Observed finding | Action and result |
|---|---|---|
alpha\u200Bbeta | 10 code points; U+200B at position 6, selected by default | Remove selected produced alphabeta. Copy status changed to “Cleaned text copied.” |
😀\u200BZ | 3 code points; U+200B at position 2 | Remove selected produced 😀Z. |
A\u200DB | 3 code points; U+200D at position 2, unchecked by default | With no selection, removal preserved the input. After “Select all found,” removal produced AB. |
UNICODE REFERENCE
Invisible character reference table
This table documents the explicit set scanned by this page. Names and code points follow the Unicode Character Database. “Possible route” and “possible effect” are practical notes, not a claim that every source inserts the character.
| Character name | Code point | Possible route | Possible effect | Cleanup | Official record |
|---|---|---|---|---|---|
| SOFT HYPHEN | U+00AD | Word processing or line-break formatting | Can affect matching; may display a hyphen at a line break | Remove only if the discretionary hyphen is unwanted | UnicodeData.txt |
| COMBINING GRAPHEME JOINER | U+034F | Unicode text processing | Can affect grapheme boundaries and comparisons | Review surrounding combining marks before removal | UnicodeData.txt |
| ARABIC LETTER MARK | U+061C | Bidirectional Arabic text | Can influence bidirectional rendering | Remove only after checking mixed-direction text | UnicodeData.txt |
| ZERO WIDTH SPACE | U+200B | Text layout or copied text | Can create an invisible line-break opportunity or break exact matching | Selected by default; remove if the break hint is unwanted | UnicodeData.txt |
| ZERO WIDTH NON-JOINER | U+200C | Shaping in scripts that use joining | Can change how adjacent letters connect | Review script shaping before removal | UnicodeData.txt |
| ZERO WIDTH JOINER | U+200D | Emoji sequences or script shaping | Can join glyphs or emoji into a sequence | Review emoji and script shaping before removal | UnicodeData.txt |
| LEFT-TO-RIGHT MARK | U+200E | Bidirectional text formatting | Can influence reading order around mixed-direction text | Review mixed-direction context before removal | UnicodeData.txt |
| RIGHT-TO-LEFT MARK | U+200F | Bidirectional text formatting | Can influence reading order around mixed-direction text | Review mixed-direction context before removal | UnicodeData.txt |
| LEFT-TO-RIGHT EMBEDDING | U+202A | Legacy bidirectional formatting | Can alter displayed direction until its matching terminator | Review the full directional span before removal | UnicodeData.txt |
| RIGHT-TO-LEFT EMBEDDING | U+202B | Legacy bidirectional formatting | Can alter displayed direction until its matching terminator | Review the full directional span before removal | UnicodeData.txt |
| POP DIRECTIONAL FORMATTING | U+202C | Legacy bidirectional formatting | Can end an embedding or override scope | Review the full directional span before removal | UnicodeData.txt |
| LEFT-TO-RIGHT OVERRIDE | U+202D | Legacy bidirectional formatting | Can force displayed direction and confuse visual inspection | Review the full directional span before removal | UnicodeData.txt |
| RIGHT-TO-LEFT OVERRIDE | U+202E | Legacy bidirectional formatting | Can force displayed direction and confuse visual inspection | Review the full directional span before removal | UnicodeData.txt |
| WORD JOINER | U+2060 | Text layout or copied text | Can prevent a line break between adjacent characters | Selected only after review; removal may change wrapping | UnicodeData.txt |
| FUNCTION APPLICATION | U+2061 | Mathematical notation | Can represent invisible function application | Review mathematical text before removal | UnicodeData.txt |
| INVISIBLE TIMES | U+2062 | Mathematical notation | Can represent an invisible multiplication operator | Review mathematical text before removal | UnicodeData.txt |
| INVISIBLE SEPARATOR | U+2063 | Mathematical notation | Can separate mathematical expressions without a visible mark | Review mathematical text before removal | UnicodeData.txt |
| INVISIBLE PLUS | U+2064 | Mathematical notation | Can represent an invisible addition operator | Review mathematical text before removal | UnicodeData.txt |
| LEFT-TO-RIGHT ISOLATE | U+2066 | Bidirectional text formatting | Can isolate a left-to-right span | Review the full directional span before removal | UnicodeData.txt |
| RIGHT-TO-LEFT ISOLATE | U+2067 | Bidirectional text formatting | Can isolate a right-to-left span | Review the full directional span before removal | UnicodeData.txt |
| FIRST STRONG ISOLATE | U+2068 | Bidirectional text formatting | Can isolate text using its first strong direction | Review the full directional span before removal | UnicodeData.txt |
| POP DIRECTIONAL ISOLATE | U+2069 | Bidirectional text formatting | Can end an isolate span | Review the full directional span before removal | UnicodeData.txt |
| ZERO WIDTH NO-BREAK SPACE / BOM | U+FEFF | File signature or legacy word-joining use | A leading mark may be an encoding signature; embedded use can affect matching | Not selected by default; keep a valid leading BOM | UnicodeData.txt |
The Unicode Character Database supplies official character names and code points. The standard distinguishes line-break controls, shaping controls, mathematical operators, and bidirectional formatting; they are not interchangeable.
QUICK ANSWERS
Zero width space FAQ
What is a zero width space?
U+200B ZERO WIDTH SPACE is an invisible line-break opportunity. It can also make exact text matching fail when an application treats it as part of the string.
Does this remove every invisible Unicode character?
No. It scans the explicit code points in the table. Unicode contains many characters with invisible or formatting behavior, and this page does not claim to find every one.
Why are some detected characters not selected by default?
Joiners, direction controls, mathematical operators, and a leading byte-order mark can carry meaning. Review the character and its context before choosing to remove it.