The unbroken sequence can overflow its box.
U+200B · Zero Width Space · ZWSP
Zero Width Space Copy & Paste
Copy the real U+200B character, see how it creates a possible line break without visible width, and learn when another invisible character is the correct choice.
- General Category Cf
- Unicode White_Space: No
- Line-break opportunity
Choose an exact amount.
The outlined area is intentionally empty-looking. Repeating U+200B does not make a wider gap.
An extra character does not have to make a gap.
AB has two code points. A[U+200B]B has three and usually still looks like AB. A[U+0020]B also has three, but includes an ordinary visible space. Repeating U+200B does not turn it into an ordinary spacing character.
A break opportunity is permission for wrapping, not a forced new line. Available width and layout rules determine whether a break is used. The controlled live example below demonstrates this in your browser. Unicode’s line-breaking specification describes the underlying behavior.
Copy the character, not its spelling
The text U+200B is a name. Typing those six visible characters into a profile does not insert a Zero Width Space. Use this page’s copy button, paste into your destination, then inspect the saved value in the checker if you need to confirm it survived.
U+200B is a format character, not an empty string.
The break can appear even though the gap cannot.
Both boxes use the same narrow width. The first string has no break opportunity; the second contains U+200B between repeated blocks. This demonstrates the current browser and font only.
The browser may wrap at each invisible character.
How U+200B appears in code and markup.
"\u200B"​​U+200BTyping the six visible characters \u200B into a normal text field does not usually create a Zero Width Space. That notation must be interpreted by code.
Other zero-width characters have different jobs.
| Character | Code | Main behavior | Use instead when |
|---|---|---|---|
| Zero Width Space | U+200B | Allows a possible line break | You need an invisible break opportunity |
| Zero Width Non-Joiner | U+200C | Prevents joining | A script requires a non-joining boundary |
| Zero Width Joiner | U+200D | Encourages joining | A script or emoji sequence requires joining |
| Word Joiner | U+2060 | Prevents a line break | You need the opposite break behavior |
| No-Break Space | U+00A0 | Adds visible spacing and resists a break | You need an ordinary-looking gap |
Copy it for soft break opportunities, then verify the destination.
Useful for long unbroken text
U+200B can give a browser a place to wrap identifiers or long strings without displaying a space.
Not a wider blank
Ten U+200B characters remain zero-width. Use a width-bearing character when your goal is a visible gap.
Apps may remove it
Forms, usernames and messaging apps may normalize or reject format characters. Save, reopen and inspect the actual result.
Find or remove it
Use the checker to locate positions or the remover to create a cleaned copy.
Unicode properties and browser behavior are separate evidence.
The name, category and White_Space statement use Unicode Character Database 18.0.0. The wrapping demo verifies this page’s current browser and CSS; it does not guarantee another editor or platform will wrap identically.
Copy U+200B, place it, then verify it survived.
- Copy the character itself, not its name.
Use Copy 1 for a single break opportunity, or a higher amount when you need several. If the clipboard write is blocked, the manual copy field holds the same U+200B for select-and-copy.
- Paste it where a break should be allowed.
Put it inside a long unbroken identifier, between repeated blocks, or at the point where a word may split. It adds no visible width, so the position is invisible by design.
- Confirm the destination kept it.
Save or submit, then reopen and check the code points. Apps are allowed to trim, normalize or reject format characters, and a saved result is the only reliable evidence.
Where a zero-width space is actually used.
Long identifiers and URLs that must wrap
A long part number, file hash or tracking code can overflow a table cell or a mobile column. A break opportunity lets the browser wrap without adding a visible gap.
Layout without visible spacing
Where an ordinary space would change the copy, U+200B can control wrapping while leaving the rendered text unchanged.
Scripts written without spaces
Languages such as Thai are written without word spaces. A zero-width character can mark where a line may break, which is why the character is part of normal typographic tooling rather than only a trick.
Fields that must look empty but pass a required check
Some people use U+200B to satisfy a form that rejects an empty value. Treat this as uncertain: many platforms validate the underlying string, strip format characters, or reject them at submit time.
Finding the cause of strange wrapping
When a word breaks in the middle without a space, or a search term never matches the visible text, U+200B is a common explanation.
Four outcomes are possible, and only the destination decides.
Kept as stored text
The app saves the code point. The visible result is the same as before, and the string is no longer empty even though it looks empty.
Trimmed or normalized on submit
Input is cleaned when the form is saved rather than when it is pasted. This is the most common reason a blank value looks correct in the field and empty afterwards.
Rejected by a validation rule
Some systems explicitly disallow format characters in usernames, titles or messages and return an error instead of storing the value.
Made visible by the editor
A few editors and diff tools render invisible characters deliberately, so a reviewer may see a marker where you see nothing.
U+200B is a real code point. Many counters include it in their total, so a field with an invisible character can consume part of a visible limit.
Zero Width Space FAQ
Is a zero-width space the same as pressing the space bar?
No. A space bar produces U+0020, a spacing character that displays a gap and separates words. U+200B is a format character with no visible width and no word-separating behaviour in the same sense; its job is to allow a line break.
How many U+200B characters should I copy?
One per break opportunity is usually enough. Ten of them stay zero-width, so a bigger number does not create a wider blank.
Why does my zero-width space disappear after saving?
The destination may have filtered or changed the value, or saving may not have succeeded. Re-check the saved value with the checker to see whether it survived.
Does U+200B count toward character limits?
U+200B is one code point, even though it normally renders as nothing. Many limits count it, but applications may count code units, code points or other units and may filter it first. A field can therefore be “non-empty” and still consume an allowance.
Will it appear as a box or a strange symbol?
Normally it renders as nothing, because the character has no visible glyph. Editors that make whitespace visible may show a marker on purpose, and a few apps display an unfamiliar placeholder instead.
Can I use it to make my name or profile look blank?
Sometimes, but no page can promise it. Platforms set their own validation and change it over time, and they may strip the character at sign-up or save. Treat any specific result as something to verify in the app itself rather than as a documented allowance.
How do I see U+200B in text I already have?
Paste the text into the invisible character checker. It reports the code point, its one-based position and how many were found, and can copy a report you can send to someone else.
Which character should I use instead if I want a visible gap?
Use a width-bearing option such as U+0020, U+00A0 or U+3164, depending on whether you need an ordinary gap, a gap that resists breaking, or a blank-looking character with width. The comparison guide explains the trade-offs.