Zero Width Space Generator
Copy the zero width space (U+200B). A zero-width format character that tells browsers and text engines where a line is allowed to wrap, without showing a hyphen or taking up space.
A zero-width format character that marks a line-break opportunity. Renders nothing, takes no space, and never inserts a hyphen.
What the zero width space is for
The zero width space (ZWSP, U+200B) is a Unicode format character with no visible glyph and zero advance width. Its job is to tell a rendering engine where a line is allowed to break. The HTML <wbr> element behaves identically. Browsers and word processors consult these break opportunities when wrapping long strings — a long URL with U+200B characters placed after each slash will wrap neatly at those points instead of overflowing its container. The character was built for scripts like Thai, Lao, and Khmer, which do not use spaces between words; inserting U+200B between words lets the renderer wrap them. In Latin text it has a different set of uses: breaking Twitter @mentions and #hashtags so they do not auto-link, splitting long compound words in German, and quietly marking break points inside long identifiers.
Where U+200B is genuinely useful
How U+200B behaves at the edges
U+200B is a format character (general category Cf), not a space. That distinction matters. It is not whitespace, so JavaScript's trim() does not remove it — but it is also invisible, so a string that looks identical to a human can differ at the byte level. Security researchers have used this property to hide payload in identifiers: two strings that render as "admin" can be different to a database if one contains a U+200B. The Trojan Source disclosures (CVE-2021-42574 and CVE-2021-42694) documented how invisible Unicode characters can make source code compile differently from how it reads. On the rendering side, U+200B is widely supported in browsers but stripped by chat apps that sanitize input — WhatsApp and TikTok remove it from messages and bios, while Discord handles it inconsistently across fields. When a platform strips it, the fallback is usually a visible-but-blank character like U+2800 (braille blank).
Notes before you use U+200B
U+200B marks a break opportunity; it does not force one. The renderer still decides whether to wrap based on available width.
It never shows a hyphen at the break point. For a visible hyphen on wrap, use the soft hyphen (U+00AD) instead.
JavaScript trim() does not remove U+200B because it is not classified as whitespace. Use a regex that targets U+200B if you need to strip it.
To prevent a break rather than allow one, use U+2060 (word joiner) — the opposite of U+200B, and the modern replacement for the deprecated U+FEFF.
Chat apps that sanitize input often strip U+200B. For blank messages or usernames, switch to U+2800 or U+3164.
Placing U+200B inside a hashtag or @mention breaks the link. Useful when you want to mention a CSS @media rule without triggering a profile link.
Where the zero width space works
U+200B is supported in every modern browser and most word processors, where it functions as a line-break opportunity. The CSS Text Module spec explicitly references it alongside the <wbr> element as the way to mark wrapping points. In chat apps and social media, support is patchier. WhatsApp, Instagram, and Discord accept it in some fields and strip it in others. TikTok removes it from bios. Game platforms rarely accept it in usernames. The rule of thumb: in a browser or text editor, U+200B is reliable; in a chat app or social input, test first and keep U+2800 or U+3164 as a fallback.
