为什么这个 LSEP 符号出现在 Chrome 而不是 Firefox 或 Edge?

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

所以这个网页是用这些符号呈现的,它们在整个 website/application 但在其他网站上找不到。谁能告诉我

  1. 这个符号是什么?
  2. 为什么它只出现在一个浏览器中?

那个字符是U+2028 Line Separator,是换行符的一种。将其视为 HTML 的 <br>.

的 Unicode 等价物

至于它为什么出现在这里:我的猜测是内部数据库使用 LSEP 不与文字换行符或 HTML 标签冲突(这可能会破坏数据库或导致安全错误),或者:

  1. 将数据库转换为 HTML 的服务器端脚本忽略了用 <br>
  2. 替换 LSEP
  3. Chrome 只是通过将 LSEP 显示为打印(可见)字符来打破标准,或者
  4. 您安装的字体将 LSEP 显示为仅 Chrome 检测到的打印字符。要找出它是哪种字体,请右键单击有问题的文本并单击“检查”,然后切换到右侧面板上的“计算”选项卡。在最底部,您应该会看到标有“渲染字体”的部分,这将帮助您找到有问题的字体。

有关行分隔符的更多信息,摘自 Unicode 标准,第 5.8 章,换行指南 (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).

为了对比,行分隔符基本对应HTML<BR>,而 HTML <P> 的旧用法的段落分隔符(现代 HTML 分隔符 将段落括在 <P>...</P> 中)。在文字处理器中,段落 分隔符通常使用键盘 RETURNENTER 输入;线 分隔符通常使用修改后的 RETURNENTER 输入,例如 SHIFT-ENTER.

记录分隔符用于分隔记录。例如,当交换 表格数据,一种常见的格式是用制表符分隔单元格并使用 CRLF 在一行单元格的末尾。此功能与 line 不完全相同 分离,但经常使用相同的字符。

传统上,NLF 最初是作为行分隔符(有时记录 分隔器)。它仍然在简单的文本编辑器中用作行分隔符,例如 节目编辑。随着平台和程序开始处理文字处理 使用自动换行,这些字符被重新解释为代表 段落分隔符。例如,即使是像 Windows 这样简单的程序 记事本程序和 Mac SimpleText 程序解释其平台的 NLF 作为段落分隔符,而不是行分隔符。一旦 NLF 被重新解释为 代表段落分隔符,在某些情况下,另一个控制字符是 作为行分隔符投入使用。比如垂直制表VT 在 Microsoft Word 中使用。但是,行分隔符的字符选择 甚至比 NLF 的字符选择更不标准化。许多互联网 协议和许多现有文本将 NLF 视为行分隔符,因此 实现者不能简单地将 NLF 视为段落分隔符 情况。

延伸阅读:

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 这里有一个印刷错误说 U+2028 是在 Unicode 标准的 v.1.1 中添加的,这是错误的——它是在 1.0

中添加的

您可以使用这个工具... http://www.nousphere.net/cleanspecial.php

...删除所有 Chrome 显示的特殊字符。

步骤: 粘贴您的 HTML 并使用 HTML 选项清理。

您可以在本页的编辑器中手动删除字符并查看结果。

将您的 HTML 粘贴回文件并保存 :)

9999年的答案很棒。

如果您将 Symfony 与 Twig 模板一起使用,我建议您检查一个空的 Twig 块。在我的例子中,它是一个空的 Twig 块,里面有一个不可见的字符。

LSEP 字符仅在特定设备/浏览器上显示。 另一方面,我在 header 上方有一个空白 space,我看不到任何不可见的字符。

我必须检查 GET 请求以查看值 1f18 在打开 html 标记之前。

一旦我删除了一个空的 Twig 块,它就消失了。

希望有一天这能对某人有所帮助...

我同意@Kapil Bathija - 基本上您可以将 HTML 代码复制并粘贴到 http://www.nousphere.net/cleanspecial.php 中并进行转换。

然后它将为您转换特殊字符 - 只需删除单词之间的空格,您就会意识到必须按退格键 2 次,这意味着存在无法翻译的无效字符。

我遇到了同样的问题,后来就很好用了。

我最近 运行 解决了这个问题,尝试了一些修复,但最终我不得不将文本粘贴到 VIM 中,并且有一个额外的 space 我不得不删除。我尝试了一些 HTML 清洁剂,但其中 none 有效,VIM 是关键!

我发现在 WordPress 中删除 "L SEP" 和 "P SEP" 字符的最简单方法是执行这两个 SQL 查询:

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

javascript 方式(在一些答案中提到)可能会破坏一些东西(在我的例子中,一些模式 windows 停止工作)。

您也可以复制文本,将其粘贴到 HTML 编辑器(例如 Coda)中,删除换行符,复制并粘贴回您的站点。

视频在这里:https://www.loom.com/share/501498afa7594d95a18382f1188f33ce

我的问题很相似,是“PSEP”或“P SEP”。类似的问题,我的文件中有一个不可见的字符。

我用普通的 space 替换了 \x{2029}。固定的。此问题只出现在 Windows Chrome。不在我的 Mac.

看起来我的客户在最初使用 MS-Word 创建后将 HTML 粘贴到 Wordpress 中。即使删除
和可见空格也不能解决问题。扩展字符在 vi/vim.

中可见

如果您没有 vi/vim 可用,请尝试从 LSEP 之前的 2 个字符突出显示到 LSEP 之后的 2 个字符;删除那个块,然后重新输入正确的字符。