Soft hyphen, U+00AD

An invisible marker showing where a word may be hyphenated if it needs to break across lines. When the break does not happen, it renders as nothing at all.

How it works

c2 ad. It is a conditional hyphen: a marker telling the layout engine that a word may be broken at this point, and that a visible hyphen should be drawn only if the break actually happens there. When the word fits on the line, the renderer draws nothing at all, so the character is invisible in the common case and visible in the rare one. Typesetting systems insert them into long words to improve justification. Trouble follows the same pattern as the other invisibles: the character survives every copy, so a word that reads correctly no longer matches the same word typed normally, in a search index, a database key, a config file or a URL slug, where a slug generator may either strip it silently or transliterate it into something else.

What it is legitimately for

Justified text in narrow columns, where a typesetter marks acceptable break points inside long words.

What it breaks

  • A word containing one does not match the same word typed normally, in search or in a database.
  • Copied into code or a configuration file, it produces a key that looks correct and is not.
  • It can survive into a URL slug, where it produces a 404 that looks impossible.

How to find it yourself

Look for c2 ad in a hex dump.

What Clipboard Sanitizer does

Removed everywhere.