Unicode
Inspect every character in a string and find the invisible ones that are breaking things.
3 invisible characters hiding in this text
- at 4U+200BZERO WIDTH SPACEline 1:5A zero-width space. It splits words with nothing visible there.
- at 23U+00A0NO-BREAK SPACEline 1:24A no-break space, not a plain space. Search and split will miss it.
- at 28U+2011NON-BREAKING HYPHENline 1:29A non-breaking hyphen, not U+002D. Search will miss it.
Compose — é becomes one code point.
NFC leaves this text exactly as it is.
Everything is split by code point, so an emoji is one row even though it is two UTF-16 units. Strip swaps exotic spaces for U+0020 and a non-breaking hyphen for a plain one rather than deleting them, keeps the joiners that hold an emoji or a flag together, and never removes U+FFFD — those bytes are already gone, and hiding that helps nobody.
A string that looks correct and does not compare equal usually contains something you cannot see: a zero-width space, a non-breaking space, a smart quote pasted from a document, or a homoglyph from another alphabet.
Each character is listed with its code point, name and category, and anything invisible or unusual is flagged. It is the quickest way to explain why two identical-looking strings are not equal.
What people open it for
- Finding the zero-width character breaking a comparison
- Spotting smart quotes pasted in from a word processor
- Identifying a homoglyph in a suspicious string
In the terminal
tools unicode
Every utility is also a command in the desktop's shell.