Soft Hyphen
U+00AD · decimal 173 · Latin-1 Supplement
This character renders as nothing. It still occupies a position in the string, so it breaks equality checks, slugs, and search — which is exactly why it is so hard to find by eye.
Every way to write it
7 forms­
A named entity — readable, and safe in any HTML document without declaring a charset.
­
The numeric form works everywhere a named one does, and exists for every character.
\00AD
For a content property in a ::before or ::after rule. No semicolon, and mind the trailing space.
\u00AD
Valid in a JavaScript or JSON string literal, so it survives files and pipelines that are not UTF-8 clean.
\u00AD
The escape for a Python string literal.
%C2%AD
Percent-encoded UTF-8, for a query string or a path segment.
C2 AD
2 bytes on the wire. Seeing these as separate garbled characters means something decoded them as single-byte text.
Typing it without copying
system pickerControl + Command + Space, then search soft hyphen
Character Map or Alt + 173