Wirebook › Bonus lesson
Why can two passwords look the same but only one works?
Two passwords can look identical on the screen and still be different to a computer. The difference is often an invisible character: a real Unicode number that draws nothing. Drag the lens across the sand below to find the ghost footprints they leave, read what each one does, then repair broken messages — while keeping ordinary spaces.
U+0020) is the normal gap between words — computers expect it, and messages need it. Non-breaking spaces, zero-width spaces and friends look empty too, but they are different numbers. The skill is telling the good blank from the troublemakers.Invisible characters are real numbers
Every letter, space and emoji has a number on the worldwide Unicode list. Most numbers draw something you can see. A few are deliberately blank: they are still numbers in the text, they still take up bytes when you send a message, and computers treat them as different from "nothing there". An ordinary space is one of those numbers too — just the everyday, legitimate one.
The most common blanks (good and sneaky) you will meet:
- Ordinary space (
U+0020) — the normal blank between words. Keep it. This is not a bug. - Zero-width space (
U+200B) — a space that draws nothing. Often left behind after a soft line break on a web page. - Zero-width non-joiner (
U+200C) — stops letters joining into a ligature. Often useful on purpose. - Zero-width joiner (
U+200D) — the invisible glue that sticks emoji pieces into one picture (you met it in the emoji lesson). - Non-breaking space (
U+00A0) — looks like a normal space, but a computer sees a different number. Filenames and passwords care. - Byte order mark (
U+FEFF) — a tiny flag some editors put at the very start of a file. Invisible, but it makes "hello" not equal "hello". - Soft hyphen (
U+00AD) — a "break here if you need to" mark that usually stays invisible. - Bidirectional overrides (
U+202Eand friends) — rare, sneaky marks that can flip the order letters appear. Some phones and editors warn about them.
Why computers care and people don't
Your eyes skip blanks. A computer compares every number in order. One extra zero-width space and a password check fails, a filename search misses, or two "identical" lines in a diff tool light up as different. That is useful for emoji glue and soft line breaks, and annoying when a ghost sneaks into a secret or a config file. Deleting every blank is the wrong fix — messages still need ordinary spaces.
- When a password "looks right" but is rejected, try typing it by hand instead of pasting.
- When two filenames look the same in a folder, rename one by typing the name fresh — including the normal spaces.
- Builders: strip or reject zero-width and bidi-override characters in usernames, tokens and filenames; allow ordinary space where humans type phrases; store text as UTF-8.
- Need a grown-up checklist? Tooltern's guide on invisible zero-width characters lists the usual suspects, and Anvil's free text X-ray API names every character in JSON.