什么是unicode字符2028(LS/Line Separator)用于?

Eli*_*jah 33 unicode newline

我在想,线路破坏问题必须由某人解决,但可能没有被广泛采用.作为前瞻性思维,我去搜索是否有一个独立于平台的unicode方法来分隔行.在我的搜索中,我找到了unicode字符2028.然后,我发现Jeff Atwoods 在这个主题发帖,他提到他"......不确定在什么情况下你会想要那些Unicode换行标记."

好吧,我也是.我在C#源代码中进行了一些挖掘,看起来像TextReader.ReadLine()不支持LS(x2028),Java的BufferedReader.ReadLine()也不支持它.所以,我的结论是它没有得到广泛的支持.

我希望有一个光明的未来,我可以在Linux,MacOS和Windows中使用单一格式编写文件.这个小角色有承诺吗?它目前用于什么?

MSa*_*ers 10

从缺口麦克道尔的在同一页上的评论,间接Unicode的文档:

传统上,NLF最初是作为行分隔符(有时是记录分隔符).它仍然用作简单文本编辑器(如程序编辑器)中的行分隔符.随着平台和程序开始使用自动换行处理文字处理,这些字符被重新解释为代表段落分隔符.例如,即使像Windows Notepad程序和Mac SimpleText程序这样的简单程序也将其平台的NLF解释为段落分隔符,而不是行分隔符.

在此上下文中的NLF(新行功能)是CR,LF和CRLF的简写.相比之下,两个Unicode字符具有明确的用途.

  • 它还有另一个优点 - 在逗号或制表符分隔的文件中,它可以替换多行列中的换行符,而不会使文件的处理复杂化(例如使用简单的 shell 管道工具)。 (2认同)
  • @AmirAbiri 好主意。但请注意,在读取此文件时,您通常必须将“LS”替换为程序支持的换行符,通常由字符串中的“\n”转义序列表示。例如,在Python 2中: `u'第一行\u2028第二行'.replace(u'\u2028', u'\n')` (2认同)

Edw*_*rey 6

根据Unicode 换行指南,U+2029 段落分隔符 (PS) 明确表示分隔段落的意图。U+2028 行分隔符 (LS) 也适用于行。其他换行符 LF、CR、CR+LF 和 NEL 是不明确的,其含义取决于平台和应用程序。

例如,LF 可能在文字处理应用程序中分隔段落,但在简单文本编辑器中仅分隔行。相比之下,PS 总是将段落分开,而不管应用程序的类型。