Text Spacer

Paste a caption or a bio, keep every blank line with an invisible character, and copy it counted.

A sample. Type or paste your own.

Sample Spaced text 138 characters

The bakery is closed on Monday. ⠀ The oven is being looked at by a man who says it is fine. ⠀ It is not fine. ⠀ Back on Tuesday, probably.

3 empty lines kept with Braille pattern blank. 138 characters, 3 added.

Settings
Empty lines get
More options space out letters, show characters, a limit
Space out letters
Spacer

Marks every filler and every spacer that is not an ordinary space. Copy still takes the real characters.

All 10 characters

Fillers for an empty line 3

  • Braille pattern blank U+2800. The Braille cell with no dots raised, and the filler this page starts with. Unicode files it as a symbol, not a space, so a routine that trims spaces from a line leaves it where it is, and its own note in the name list says that many fonts draw it as a fixed-width blank but that it does not act as a space. It is not on the list of characters that may be shown as nothing, so a device with no font for Braille patterns draws an empty box. A word counter does not count it as a word. One character and 3 bytes in UTF-8.
  • Hangul filler U+3164. A blank in the full width of a Korean letter, in Unicode solely for compatibility with the Korean standard KS X 1001. Unicode files it as a letter, so trimming leaves it alone, but anything that counts words may count each filled line as one: the counter on this site does. It is on the list of characters that may be shown as nothing where no font has it, so it never turns into an empty box. One character and 3 bytes in UTF-8.
  • Zero width space U+200B. A format character with no width at all, made to mark where a line may break in writing that has no spaces between words. Despite the name it is not a space to Unicode, so trimming leaves it alone, and it is not counted as a word. It may be shown as nothing anywhere, so it never turns into an empty box. Since it has no width, the filled line looks exactly as empty as it did before. Try it when the other two do not hold. One character and 3 bytes in UTF-8.
Show all 10 characters (7 more)

Spacers for between letters 5

  • Em space U+2003. A space nominally as wide as the type is tall, the widest single space here. One of these between letters does the work of two or three ordinary spaces, costs one character where they cost two or three, and is not folded on a web page. A line may wrap after it. 3 bytes in UTF-8.
  • Hair space U+200A. Thinner than the thin space; the name list puts it at a tenth to a sixteenth of an em and calls it the thinnest space of traditional typography. The lightest spacing on offer, for a heading that should look only slightly opened up. Not folded on a web page. One character and 3 bytes in UTF-8.
  • No-break space U+00A0. As wide as an ordinary space, but a line may not break on either side of it, so a spaced-out heading stays on one line or moves to the next as a whole. A web page does not fold it, which makes it the dependable way to get a full space between letters. It is a poor filler for an empty line, because it is a space and goes when the line is trimmed; that is why it is not offered as one. One character and 2 bytes in UTF-8.
  • Space U+0020. The space bar. Between letters it can be used once, twice or three times, and the gap between two words comes out as the spacer, the space that was there and the spacer again. A web page normally folds a run of ordinary spaces into one, so two or three may show as one wherever the text ends up on a page. A line may wrap after any of them. At the end of a line it is taken off: it shows nothing and costs a character. One byte in UTF-8.
  • Thin space U+2009. Much narrower than the space bar's space; the name list puts it at a fifth or a sixth of an em. It gives letters a tracked look instead of a gapped one. It is a space to Unicode, but not one of the spaces a web page folds, so the gap survives on a page. A line may wrap after it. One character and 3 bytes in UTF-8.

Taken off the end of a line 1

  • Character tabulation (tab) U+0009. The tab key. Text copied out of a table can carry one at the end of a line. Like a space there, it shows nothing and costs a character, so it is taken off. A tab in mid-line is left alone.

The line break written 1

  • Line feed (LF) U+000A. The line break the result is written with. All eight kinds of line break Unicode defines are read, the two-character Windows line end included, and each comes back as one line feed, so every break costs exactly one character. Empty lines at the very start and the very end of the text are dropped, because a filler after the last word does nothing but use up the limit.

How this list was compiled: The 10 rows are the characters the tool itself puts in or takes out, sorted by the job each does: 3 fillers for an empty line, 5 spacers for between letters (the ordinary space is used one, two or three times), 2 characters taken off the end of a line, and the line break the result is written with. Every character was made from its number, and its name and general category were checked against https://www.unicode.org/Public/18.0.0/ucd/UnicodeData.txt, the names of the two control codes against https://www.unicode.org/Public/18.0.0/ucd/NameAliases.txt, White_Space against https://www.unicode.org/Public/18.0.0/ucd/PropList.txt, Default_Ignorable_Code_Point against https://www.unicode.org/Public/18.0.0/ucd/DerivedCoreProperties.txt and the line break class against https://www.unicode.org/Public/18.0.0/ucd/LineBreak.txt, all version 18.0.0. Widths and the note on Braille pattern blank: https://www.unicode.org/Public/18.0.0/ucd/NamesList.txt and the code charts for General Punctuation (https://www.unicode.org/charts/PDF/U2000.pdf), Braille Patterns (https://www.unicode.org/charts/PDF/U2800.pdf) and Hangul Compatibility Jamo (https://www.unicode.org/charts/PDF/U3130.pdf). Hangul filler as a fullwidth form kept solely for compatibility with KS X 1001: the Unicode 18.0.0 core specification, section 18.6, https://www.unicode.org/versions/Unicode18.0.0/core-spec/chapter-18/, and East Asian Width W in https://www.unicode.org/Public/18.0.0/ucd/EastAsianWidth.txt. What is shown where no font has a character (an empty box, or nothing for a default ignorable code point): the Unicode 18.0.0 core specification, section 5.3, https://www.unicode.org/versions/Unicode18.0.0/core-spec/chapter-5/. Which spaces a web page folds (only U+0020, tabs and line breaks): CSS Text Module Level 3, section 4.1, W3C Candidate Recommendation Draft of 14 August 2026, https://www.w3.org/TR/css-text-3/. Whether a standard trim takes the character off was run in Node 22 and Python 3; whether this site's word counter counts a line holding only that character as a word was read from the counter; sizes are in UTF-8 bytes. The worked examples are own work. All checked 2026-09-19. Licence: own work

How it works

Paste a caption or a bio and this text spacer keeps its blank lines. Every empty line gets one of 3 invisible characters, so it is no longer empty and the paragraph break stays. It can also space out the letters of a heading and count the result against your limit. Some apps strip or block these characters, and screen readers may read them badly.

Read the full guide

Paste, pick a filler, copy

Write the text with ordinary blank lines between paragraphs, then paste it here. The result is the same text with one blank character on every empty line; the sample caption goes from 135 characters to 138. Used this way the page is a line break caption generator: what you copy keeps its paragraph breaks where an empty line would be closed up. Spaces and tabs at line ends are taken off. Show characters marks each filler so you can see where it sits.

Three fillers, and how they differ

Braille pattern blank (U+2800) is the default. Unicode files it as a symbol, not a space, so a routine that trims spaces leaves it alone. A device with no font for Braille draws it as an empty box. Hangul filler (U+3164) may be shown as nothing even without a font, but it is filed as a letter, so a word counter may count each filled line as a word. Zero width space (U+200B) has no width and is the one to try last.

Spacing out the letters of a heading

Switch on Space out letters for the first line or every line, then pick the spacer. One ordinary space turns OPEN LATE into O P E N, a wider gap, L A T E: 17 characters where there were 9. Three spaces make it 33. A web page normally folds a run of ordinary spaces into one, so three may display as one. An em space gives a wide gap with one character that is not folded, and a no-break space stops the heading wrapping between letters.

  • Need to edit the spaced text? Paste it back in. A line that holds only a filler is read as empty and filled afresh, so nothing doubles up.
  • An empty box where the blank line should be means the device has no font for Braille patterns. Switch to Hangul filler.
  • Hangul filler is a letter to Unicode. The paragraph counter counts each line filled with it as a word, and a line filled with any of the three as a paragraph.
  • Spaced-out letters stop being a word. A search for OPEN will not find O P E N, so keep the spacing for a heading.
  • Type your limit before you paste. A filled blank line costs two characters, the filler and its line break, where an empty one cost one.

Questions and answers

What does a text spacer do?

It returns your text with one blank character on each empty line. A line that holds a character is not empty, so the gap between paragraphs is kept where an empty line would be closed up. It also trims line ends, spaces out a heading if you ask, and counts the result.

Which blank character should I choose?

Start with Braille pattern blank. It is a symbol and not a space, so trimming leaves it where it is, and this site's counters do not read it as a word. If it shows as an empty box, use Hangul filler, which Unicode allows a device to display as nothing.

Do the invisible characters count towards a character limit?

Yes. Each filler is one character and so is each line break. The sample caption has 3 blank lines and goes from 135 characters to 138 once they are filled. In UTF-8 each filler takes 3 bytes, which matters only where a field is limited in bytes.

Why do the spaces between my letters close up?

Web pages fold a run of ordinary spaces into one. The rule belongs to CSS, the language that lays pages out, and it covers only the ordinary space, tabs and line breaks. Thin, hair, em and no-break spaces are not folded. For a wide gap that survives, use one em space.

Why did my blank line disappear anyway?

Some apps strip or block these characters, and no filler can be promised to hold everywhere. Try the other two. If none stays, the place you are posting to takes them out, and a visible mark on the line, such as a middle dot, is the dependable way to keep paragraphs apart.

How is this different from the invisible text generator?

The invisible text generator hands over blank characters one at a time for you to place by hand. This page works on a whole text and puts the blanks where the empty lines are. Remove line breaks is the opposite job: it takes breaks out.