TraceFree PRO

U+2029
PARAGRAPH SEPARATOR

Paragraph break that many parsers and editors mishandle.

Codepoint
U+2029
Short
PS
Group
line-separator
Class
invisible
Default
replaced
Replaced by
U+000A

What it is

Unicode's own line and paragraph breaks, separate from the line feed and carriage return inherited from ASCII. They mean the same thing and are handled correctly by far fewer programs.

Where it comes from

From word processors and page-layout software, and from anything that converted rich text to plain text without normalising the breaks.

When it belongs

Rarely enough that TraceFree PRO replaces them with an ordinary line feed rather than deleting them: the break was meant, only the encoding of it was unusual.

What TraceFree PRO does with it

PresetAction
conservativereplaced
defaultreplaced
report-onlyasked about
strictreplaced

Context guards can only ever make a cleanup gentler, never sharper. A rule saying “always remove” does not override them.

How to remove it

In TraceFree PRO, turn on the clipboard watcher and copy the text. On the command line:

tracefree clean --backup document.txt
pbpaste | tracefree clean | pbcopy

Report without changing anything — exit code 1 on findings, so it works in CI:

tracefree check -r ./docs

How to write it

This page never prints the character itself, only ways of writing it. A page about invisible characters that contained invisible characters would be unreviewable — and that is the problem the program exists to solve.

NotationValue
UnicodeU+2029
Rust\u{2029}
JavaScript, Python\u2029
HTML
 

Regex (PCRE, Rust)\x{2029}

Related characters

Try it on your own text

Paste anything into the browser demo and see what is in it. Same engine as the app, running entirely on your device — nothing is uploaded.

Try it

Download on the Mac App Store
Download coming soon
Get it from Microsoft
Download coming soon