我在想,打破问题的线路必须在某种程度上解决,但可能没有被广泛采用。作为前瞻性思维,我去搜索是否有一个独立于平台的unicode方法来分隔行。在我的搜索中,我找到了unicode字符2028.然后,我找到了Jeff Atwoods post on this topic,他在那里提到他“......不确定在什么情况下你会想要那些Unicode换行标记。”
嗯,我也是。我在C#源代码中进行了一些挖掘,看起来像TextReader.ReadLine()不支持LS(x2028),Java的BufferedReader.ReadLine()也不支持它。所以,我的结论是它没有得到广泛的支持。
我希望有一个光明的未来,我可以在Linux,MacOS和Windows中使用单一格式编写文件。这个小角色有承诺吗?它目前用于什么?
答案 0 :(得分:9)
在McDowell的同一页上发表评论,间接来自the Unicode docs:
传统上,NLF最初是作为行分隔符(有时是记录分隔符)。它仍然用作简单文本编辑器(如程序编辑器)中的行分隔符。随着平台和程序开始使用自动换行处理文字处理,这些字符被重新解释为代表段落分隔符。例如,即使像Windows Notepad程序和Mac SimpleText程序这样的简单程序也将其平台的NLF解释为段落分隔符,而不是行分隔符。
此上下文中的NLF(新行函数)是CR,LF和CRLF的简写。相比之下,两个Unicode字符具有明确的用途。
答案 1 :(得分:1)
根据Unicode Newline Guidelines, U + 2029段落分隔符(PS)明确表示分隔段落的意图。 U + 2028的行分隔符(LS)同样适用于行。其他换行功能字符LF,CR,CR + LF和NEL模棱两可,其含义取决于平台和应用程序。
例如,LF可以在文字处理应用程序中分隔段落,但在简单的文本编辑器中只能分隔行。相比之下,不管应用程序的类型如何,PS总是将段落分开。