unicode - 为什么此 LSEP 符号显示在 Chrome 上,而不是 Firefox 或 Edge 上?

标签 unicode character-encoding ascii non-ascii-characters

因此,此网页使用这些符号进行渲染,并且在整个网站/应用程序中都可以找到它们,但在其他网站上找不到它们。谁能告诉我

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

Excerpt

最佳答案

该字符是 U+2028 行分隔符,它是一种换行符。将其视为 HTML <br> 的 Unicode 等效项.

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

  1. 将数据库转换为 HTML 的服务器端脚本忽略将 LSEP 替换为 <br>
  2. Chrome 将 LSEP 显示为打印(可见)字符,这违反了标准,或者
  3. 您安装的字体将 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 ;线 分隔符通常使用修改后的 RETURN 输入或ENTER , 例如 SHIFT-ENTER .

记录分隔符用于分隔记录。例如,交换时 表格数据,常见格式是用制表符分隔单元格并使用 CRLF 在一行细胞的末端。该函数与 line 不完全相同 分隔,但经常使用相同的字符。

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

关于unicode - 为什么此 LSEP 符号显示在 Chrome 上,而不是 Firefox 或 Edge 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603446/

相关文章:

python - 如何将unicode下标与字符串格式结合起来

c++ - 开关在 C++ 中不起作用

php - 无法在 mysql 数据库中正确插入希腊字符

assembly - ARM 汇编加载 ASCII 内存地址

java - 将数字写为可排序文本的聪明方法?

unicode - 如何在 C++ 的字符串中打印转义的十六进制?

swift - 从 NSMutableString 中删除 unicode 符号

python - 'coding=utf8' 和 '-*- coding: utf-8 -*-' 有什么区别?

excel - 保存带有 BOM 的 CSV

linux - 查看某些文件时,为什么 `^M`出现在终端输出中?