Unicode Space Characters

Every blank and invisible character in one place, compared by the three things that actually determine whether one will work for you: how wide it renders, whether it survives trimming, and whether it collapses in HTML.

The two things worth knowing first

Category decides whether a character survives. Unicode puts most blank characters in the category Zs, Space Separator. Software treats anything in Zs as whitespace, which means it can be trimmed from the ends of a value and collapsed when several appear together. Hangul Filler is the exception that makes this site useful: it renders as blank but is classified as a letter, so trimming ignores it.

Width is fixed or it is not. The regular space is whatever width the font designer chose, and justification stretches it. The per-em spaces are exact fractions of the font size and never change. If you need spacing that stays put, use a fixed-width space.

All Unicode space and invisible characters

Sorted by code point. Click any character for its full specification, platform behaviour and copy button.

Character Code point Category Width Survives trim()
Space U+0020 Zs (Space Separator) Font-dependent, typically about 1/4 em No
No-Break Space U+00A0 Zs (Space Separator) Same width as a regular space in the current font Usually yes
Zero Width Space U+200B Cf (Format) Zero - it occupies no horizontal space at all Usually yes
EN Space U+2002 Zs (Space Separator) Exactly 1/2 em - half the current font size Usually yes
EM Space U+2003 Zs (Space Separator) Exactly 1 em - equal to the current font size Usually yes
Three-Per-Em Space U+2004 Zs (Space Separator) Exactly 1/3 em Usually yes
Four-Per-Em Space U+2005 Zs (Space Separator) Exactly 1/4 em Usually yes
Six-Per-Em Space U+2006 Zs (Space Separator) Exactly 1/6 em Usually yes
Figure Space U+2007 Zs (Space Separator) Exactly the width of a digit in the current font Usually yes
Punctuation Space U+2008 Zs (Space Separator) Exactly the width of a period in the current font Usually yes
Thin Space U+2009 Zs (Space Separator) About 1/5 em, though the exact width is left to the font Usually yes
Hair Space U+200A Zs (Space Separator) The narrowest visible space - typically about 1/10 em or less Usually yes
Narrow No-Break Space U+202F Zs (Space Separator) Narrow, similar to Thin Space Usually yes
Medium Mathematical Space U+205F Zs (Space Separator) Exactly 4/18 em - two ninths of the font size Usually yes
Hangul Filler U+3164 Lo (Other Letter) - not whitespace Renders blank; width varies by platform, often zero or narrow Usually yes
Ideographic Space U+3000 Zs (Space Separator) Exactly 1 em - full-width, matching a CJK character Usually yes
Left-To-Right Mark U+200E Cf (Format) - invisible, zero width Zero - it is a formatting mark, not a space Usually yes
Right-To-Left Mark U+200F Cf (Format) - invisible, zero width Zero - it is a formatting mark, not a space Usually yes

Choose by what you are trying to do

You want text that looks completely empty

Use Hangul Filler (U+3164). It is the only character here that renders as blank and is classified as a letter, which is the combination that gets past required-field validation. This is what powers a blank WhatsApp message, a blank comment and an empty Instagram highlight name.

You want a gap of an exact width

Use a per-em space. EM Space is one em, EN Space is half an em, and the three-, four- and six-per-em spaces divide it further. All of them scale with the font size and none of them collapse in HTML.

You want text that never breaks across a line

Use No-Break Space for a regular-width gap, Narrow No-Break Space for a thin one, or Figure Space when the gap needs to match a digit.

You are aligning numbers or punctuation

Figure Space is exactly as wide as a digit and Punctuation Space exactly as wide as a period, which lets you pad plain text into neat columns without a table.

You are fixing mixed-direction text

Left-To-Right Mark and Right-To-Left Mark are not spaces at all - they are zero-width instructions that tell the renderer which way ambiguous characters should face in Arabic, Hebrew and other bidirectional text.

Working with these characters in code

Every character on this site has an HTML entity, a JavaScript escape and a CSS escape listed on its own page, and the HTML space characters converter will generate all three for any character you paste in. If you are debugging a string that looks right but does not compare equal, the invisible character detector will show you exactly what is hiding in it, and remove invisible characters will strip it back out.

Frequently Asked Questions

How many space characters are there in Unicode?

It depends what you count. There are 17 characters in the Zs Space Separator category, plus a number of zero-width and format characters that render as blank without being classified as whitespace. This page covers the 18 that matter in practice, including Hangul Filler, which is technically a letter.

Which Unicode space is invisible?

Zero Width Space (U+200B) has no width at all, and the direction marks U+200E and U+200F are zero-width format characters. Hangul Filler (U+3164) also renders as blank. Every character in the Zs category has a real width, however small.

Which Unicode space characters collapse in HTML?

Only the ASCII whitespace characters collapse - space, tab, newline, carriage return and form feed. Every other Unicode space, including No-Break Space, EN Space and EM Space, renders at full width no matter how many you put in a row.

Which space character survives form validation?

Hangul Filler (U+3164) is the most reliable, because Unicode classifies it as a letter rather than whitespace so trim() leaves it alone. No-Break Space is the best fallback, since many validators only strip ASCII whitespace.

What is the widest Unicode space?

EM Space (U+2003) and Ideographic Space (U+3000) are both exactly one em wide, matching the current font size. Ideographic Space is designed to align with the square character grid used in Chinese, Japanese and Korean typography.

Popular Blank Text Guides

Explore the most useful guides on BlankText.Net for blank messages, Instagram, gaming nicknames, and Unicode spaces.