How it works
The zero width space, U+200B, is a format character with no width. Unicode made it to mark where a line may break in scripts written without spaces. Some apps strip or block these characters, and screen readers may read them badly.
Read the full guide
The codes for U+200B
The code point is U+200B, in the block General Punctuation. HTML has a name for it, ​, beside the numbers ​ and ​. In UTF-8 it is three bytes: E2 80 8B. Its general category is Cf, format, and it is not on Unicode's White_Space list.
Three neighbors with other jobs
The zero width non-joiner, U+200C, breaks a cursive join or a ligature, and the zero width joiner, U+200D, asks for one. Neither changes where a line breaks. The word joiner, U+2060, does the reverse of this page's character: it forbids a break where it stands. The Character list holds all three.
- A box that trims hidden characters will drop it, and many forms count a message made only of these as empty.
- A stray zero width space can keep a pasted word from matching in a search. If one will not match, retype it.
Questions and answers
What is the zero width space for?
Marking a place where a line may break, with no visible gap. The Unicode Standard names Thai, Myanmar, Khmer and Japanese, languages written with no space between words, as where it is meant to be used.
Does a zero width space really have no width?
Ordinarily, yes. The standard warns that the name should not be read too literally: when a line is justified, software may add letter spacing between two characters that have a zero width space between them.
How do I write a zero width space in HTML?
​, ​ or ​. The HTML standard also maps four other names to the same character: ​, ​, ​ and ​.
How can I tell that it copied?
The button says so, and the line over the hatched box names it: 1 × Zero-width space (U+200B). The box stays at its narrowest because the character has no width. Paste it inside a long word in a narrow column and the word can break there.