Skip to content
Ghostchars

Line separators

LINE SEPARATOR (U+2028)

Unicode's own "new line here" character, distinct from the ASCII line feed. It ends a line without ending a paragraph.

Codepoint
U+2028
Also written as
u2028\u2028

Removed by default
No
Governing option
Line endings -n
Can be load-bearing
No

Copy and paste U+2028

To copy and paste LINE SEPARATOR (U+2028), press the button: the character itself goes to your clipboard, and Ctrl+V (Cmd+V on a Mac) pastes it anywhere you can type.

Where it comes from

Shift+Enter in most word processors and page-layout tools, and from anything that exports from them. macOS text editors and InDesign are prolific sources.

Why it matters

It is a line break that most line-oriented software does not recognise. Files split into the wrong number of lines, CSV rows merge, and, famously, a raw U+2028 inside a JavaScript string literal used to be a syntax error, which broke JSON embedded in HTML.

Before and after

LINE SEPARATOR (U+2028) before and after cleaning, with the hidden character shown as a labelled chip
Reference card for this character: the codepoint, the verdict, and the same before and after in one image.
BeforefirstU+2028second
Afterfirst second

A line break your text editor may not count as one.

The character is shown as a labelled chip so you can see where it sits. In your text it draws nothing at all.

When it is legitimate

Inside a paragraph that genuinely needs a soft line break, in software that understands it. In plain text a line feed is safer and means the same thing to a reader.

How to remove it

Turn on Line endings (`-n`) and it is folded to a plain LF, along with CRLF, CR, NEL and U+2029.

Working in a file rather than a paste? The document report for .docx, .odt and .html finds it inside the file, together with hidden runs and tracked changes, without you having to open it. If the question is what the rest of the writing does rather than what this one character does, count the dashes and stock transitions and see where each habit sits, with no score and no claim about who wrote the text.

Is it an AI watermark?

Not a watermark

No. It comes from word processors and layout tools. Finding one tells you the text passed through a rich text editor.

No connection to machine-generated text. It comes from software, from a keyboard, or from a person.

Questions

Why did it break my JavaScript?

Before ES2019, U+2028 and U+2029 were not allowed unescaped in string literals, so JSON embedded directly in a script tag could fail to parse. Modern engines allow them; older ones and many tools still do not.

Why is it not folded by default?

Because changing line endings changes the file. That should be a decision you make, not one a cleaner makes for you.

Check your own text

Paste anything into the cleaner to see every hidden character it contains, with position, codepoint and what happens to each one. Nothing is uploaded.

Check your own textClean it in Chrome as you pasteClean it on your Mac with one keystrokeAll characters

Anonymous usage stats?

Ghostchars processes your text in the browser and never uploads it. We would like to count page views with a self-hosted, cookie-light analytics endpoint. No content, ever.