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

问题描述 投票:33回答:5

因此,此网页使用这些符号进行渲染,并且可以在整个网站/应用程序中找到它们,但不会在其他网站上找到任何人都可以告诉我1)符号是什么2)为什么它只出现在一个浏览器中?

enter image description here

character-encoding ascii non-ascii-characters
5个回答
46
投票

该字符是U + 2028行分隔符,这是一种换行符。可以把它想象成HTML的<br>的Unicode等价物。

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

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

有关行分隔符的更多信息,摘自Unicode标准,第5.8章,换行符指南(on p. 12 of this PDF):

Line Separator and Paragraph Separator

段落分隔符 - 与编码方式无关 - 用于表示段落之间的分隔。行分隔符指示单独换行的位置,通常在段落内。例如:

这是一个带有行分隔符的段落, 导致单词“cause”出现在不同的行上,但不会导致 典型的段落缩进,句子断开,行间距或 刷新(右,中或左段落)。

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

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

传统上,NLF最初是一个行分隔符(有时记录分隔符)。它仍然用作简单文本编辑器(如程序编辑器)中的行分隔符。随着平台和程序开始使用自动换行处理文字处理,这些字符被重新解释为代表段落分隔符。例如,即使像Windows Notepad程序和Mac SimpleText程序这样的简单程序也将其平台的NLF解释为段落分隔符,而不是行分隔符。一旦NLF被重新解释为代表段落分隔符,在某些情况下,另一个控制字符被用作行分隔符。例如,垂直制表VT用于Microsoft Word。但是,行分隔符的字符选择甚至比NLF的字符选择标准化程度更低。许多Internet协议和许多现有文本将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标准的1.1版中添加的,这是假的 - 它是在1.0中添加的


4
投票

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

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

步骤:使用HTML选项粘贴HTML和清理。

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

将HTML粘贴到文件中并保存:)


4
投票

我最近遇到了这个问题,尝试了一些修复,但最终我不得不将文本粘贴到VIM中,还有一个额外的空间我不得不删除。我尝试了一些HTML清洁工,但没有一个工作,VIM是关键!


2
投票

9999年的答案很棒。

如果你使用Symfony与Twig模板我建议检查一个空的Twig块。在我的例子中,它是一个空的Twig块,里面有一个看不见的char。

LSEP char仅显示在某些设备/浏览器上。另一方面,标题上方有一个空白区域,我看不到任何隐形字符。

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

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

希望有一天能帮助别人......


0
投票

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

然后它将为你转换特殊字符 - 只需删除单词之间的空格,你就会发现你必须按退格2x意味着有一个无法翻译的无效字符。

我有同样的问题,之后工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.