Unicode & invisible character inspector
A line looks aligned, but its spaces are different. Reveal what is actually in your text, then choose exactly what to replace.
No blanket invisible-character remover. Your original stays in the input; all repairs start off.
Compare before exporting
10 code points / 12 UTF-16 units. 0 replacements. Original endings: 0 CRLF, 0 lone CR, 1 lone LF.
Original, escaped
A\tB\u{00A0}C\u{200B}\n\u{1F469}\u{200D}\u{1F4BB}Repaired, escaped
A\tB\u{00A0}C\u{200B}\n\u{1F469}\u{200D}\u{1F4BB}These are visible escape tokens, not the raw export. Backslashes double; spaces and non-ASCII code points use \u{XXXX}. No glyph or display-width assumption.
Original code points, in order
Offset is zero-based UTF-16 position, not a byte or screen column. A supplementary code point uses two units. Labels identify common controls; this is not a complete Unicode-name database. One row per code point, not per grapheme or emoji.
Showing 1-10 of 10 code points.
| Offset | Token | Code point | Decimal | Kind / common label |
|---|---|---|---|---|
| 0 | A | U+0041 | 65 | PRINTABLE ASCII |
| 1 | \t | U+0009 | 9 | TAB |
| 2 | B | U+0042 | 66 | PRINTABLE ASCII |
| 3 | \u{00A0} | U+00A0 | 160 | NO-BREAK SPACE |
| 4 | C | U+0043 | 67 | PRINTABLE ASCII |
| 5 | \u{200B} | U+200B | 8203 | ZERO WIDTH SPACE |
| 6 | \n | U+000A | 10 | LINE FEED |
| 7 | \u{1F469} | U+1F469 | 128105 | OTHER CODE POINT |
| 9 | \u{200D} | U+200D | 8205 | ZERO WIDTH JOINER |
| 10 | \u{1F4BB} | U+1F4BB | 128187 | OTHER CODE POINT |
Try a tab, a no-break space and a zero width space
The sample's escaped form is:
A\tB\u{00A0}C\u{200B}\n\u{1F469}\u{200D}\u{1F4BB}- Leave repairs off and inspect the original table. Find U+0009, U+00A0 and U+200B.
- Choose 2 spaces per tab, check Replace U+00A0 and Remove U+200B, then Inspect and preview.
- The result begins with A, two ordinary spaces, B, one ordinary space and C. Three replacements are reported. The LF and woman-technologist emoji sequence remain.
- Copy repaired text or download repaired TXT. These contain the raw characters, not the escape tokens. Download original TXT separately if you need both.
Ordinary spaces, leading/trailing spaces and blank lines are never trimmed. Tabs become a fixed number of spaces, not alignment-aware tab stops. Removing U+200B can change word breaking; replacing no-break spaces can allow wrapping. Review your receiving app before using the result.
Invisible does not mean unwanted
U+200D zero width joiner can connect an emoji sequence or affect script shaping. U+200C non-joiner, variation selectors and combining marks also carry meaning. This tool keeps them, even when Remove U+200B is checked. Bidi controls are revealed, not stripped. It is not a sanitizer, a malicious-text detector or a Unicode normalization tool.
A code point is not necessarily one visible character or one terminal cell. The sample emoji has three code points and five UTF-16 units. Font support, grapheme shaping and terminal rules determine its appearance. See the worked ASCII/Unicode width comparison and ASCII encoding reference.
Input and export limits
This is a bounded text-field inspector: 1,000 UTF-16 input units, no silent truncation and no file upload. The table pages through 50 code points at a time; exports always include the complete result. Browsers normally normalize pasted CRLF or lone CR to LF before inspection, so this is not a byte-for-byte file-line-ending audit. The counters describe the string actually held by this tab. Empty input is valid; unpaired UTF-16 surrogates are rejected explicitly because valid UTF-8 cannot preserve them.
TXT uses UTF-8 and adds no final newline. Clipboard and receiving editors may adapt line endings. Repairs never overwrite the input or automatically transfer it to another tool. For printable ASCII you have checked, paste the result into ASCII to PNG; that tool deliberately rejects tabs, Unicode and controls other than supported line endings.
Inputs and repair choices stay in memory, not links, saved settings or analytics events. Export before leaving. Site analytics, storage and hosting are separate.
Technical sources: Unicode: whitespace and default-ignorable characters and Unicode: code points and UTF encodings. Categories use this browser's Unicode property data; new-version assignments can differ between runtimes.