Why is this LSEP symbol showing up on Chrome and not Firefox or Edge?

105,993

Solution 1

That character is U+2028 Line Separator, which is a kind of newline character. Think of it as the Unicode equivalent of HTML’s <br>.

As to why it shows up here: my guess would be that an internal database uses LSEP to not conflict with literal newlines or HTML tags (which might break the database or cause security errors), and either:

  1. The server-side scripts that convert the database to HTML neglected to replace LSEP with <br>
  2. Chrome just breaks standards by displaying LSEP as a printing (visible) character, or
  3. You have a font installed that displays LSEP as a printing character that only Chrome detects. To figure out which font it is, right click on the offending text and click “Inspect”, then switch to the “Computed” tab on the right-hand panel. At the very bottom you should see a section labeled “Rendered Fonts” which will help you locate the offending font.

More information on the line separator, excerpted from the Unicode standard, Chapter 5.8, Newline Guidelines (on p. 12 of this PDF):

Line Separator and Paragraph Separator

A paragraph separator—independent of how it is encoded—is used to indicate a separation between paragraphs. A line separator indicates where a line break alone should occur, typically within a paragraph. For example:

This is a paragraph with a line separator at this point,
causing the word “causing” to appear on a different line, but not causing
the typical paragraph indentation, sentence breaking, line spacing, or
change in flush (right, center, or left paragraphs).

For comparison, line separators basically correspond to HTML <BR>, and paragraph separators to older usage of HTML <P> (modern HTML delimits paragraphs by enclosing them in <P>...</P>). In word processors, paragraph separators are usually entered using a keyboard RETURN or ENTER; line separators are usually entered using a modified RETURN or ENTER, such as SHIFT-ENTER.

A record separator is used to separate records. For example, when exchanging tabular data, a common format is to tab-separate the cells and to use a CRLF at the end of a line of cells. This function is not precisely the same as line separation, but the same characters are often used.

Traditionally, NLF started out as a line separator (and sometimes record separator). It is still used as a line separator in simple text editors such as program editors. As platforms and programs started to handle word processing with automatic line-wrap, these characters were reinterpreted to stand for paragraph separators. For example, even such simple programs as the Windows Notepad program and the Mac SimpleText program interpret their platform’s NLF as a paragraph separator, not a line separator. Once NLF was reinterpreted to stand for a paragraph separator, in some cases another control character was pressed into service as a line separator. For example, vertical tabulation VT is used in Microsoft Word. However, the choice of character for line separator is even less standardized than the choice of character for NLF. Many Internet protocols and a lot of existing text treat NLF as a line separator, so an implementer cannot simply treat NLF as a paragraph separator in all circumstances.

Further reading:

Unicode Technical Report #13: Newline Guidelines

General Punctuation (U+2000–U+206F) chart PDF

SE: Why are there so many spaces and line breaks in Unicode?

SO: What is unicode character 2028 (LS / Line Separator) used for?

U+2028 on codepoints.net A misprint here says that U+2028 was added in v. 1.1 of the Unicode standard, which is false — it was added in 1.0

Solution 2

I found that in WordPress the easiest way to remove "L SEP" and "P SEP" characters is to execute this two SQL queries:

UPDATE wp_posts SET post_content = REPLACE(post_content, UNHEX('e280a9'), '')
UPDATE wp_posts SET post_content = REPLACE(post_content, UNHEX('e280a8'), '')

The javascript way (mentioned in some of the answers) can break some things (in my case some modal windows stopped working).

Solution 3

You can use this tool... http://www.nousphere.net/cleanspecial.php

...to remove all the special characters that Chrome displays.

Steps: Paste your HTML and Clean using HTML option.

You can manually delete the characters in the editor on this page and see the result.

Paste back your HTML in file and save :)

Solution 4

I recently ran into this issue, tried a number of fixes but ultimately I had to paste the text into VIM and there was an extra space I had to delete. I tried a number of HTML cleaners but none of them worked, VIM was the key!

Solution 5

9999years answers is great.

In case you use Symfony with Twig template I would recommend to check for an empty Twig block. In my case it was an empty Twig block with an invisible char inside.

The LSEP char was only displayed on certain device / browser. On the other I had a blank space above the header and I could not see any invisible char.

I had to inspect the GET request to see that the value 1f18 was before the open html tag.

Once I removed an empty Twig block it was gone.

hope this can help someone one day ...

Share:
105,993
Joseph
Author by

Joseph

Updated on July 05, 2022

Comments

  • Joseph
    Joseph almost 2 years

    So this web page is rendering with these symbols and they are found throughout this website/application but on no other sites. Can anyone tell me

    1. What this symbol is?
    2. Why it is showing up only in one browser?

    Excerpt

  • Travis Heeter
    Travis Heeter over 7 years
    How does one make their browser render it correctly?
  • Michael Radionov
    Michael Radionov about 7 years
    Thank you for answer. I am using Ruby on Rails and this LSEP symbol was appearing in one particular case right after line break in locales. After reading your answer I just went and re-typed the whole phrase by hand and the symbol disappeared. Turned out it was a zero-width space right in that place because I copied the whole text from another tool.
  • Olaf
    Olaf over 6 years
    Maybe because it didn't answer the question. I found it useful anyway, so +1 from me.
  • Mark P
    Mark P almost 6 years
    Yep. Sublime works for this too. Copy in your editor, see the special character, delete... boom.
  • jpc-ae
    jpc-ae over 5 years
    In my case, the css fallback font displaying the character was Times New Roman on Windows 10, so it's not really one that can be removed from the system. Since Edge converts it to a space, my guess is that other browsers handle this character gracefully, while Chrome just displays it as-is.
  • adubiel
    adubiel over 3 years
    This worked perfectly. For all of you using ACF plugin - you need to run this query on different table where the ACF data is stored. In order to do that replace wp_posts with wp_postmeta and post_content with meta_value