"line break" 和 "newline" 之间的技术差异?

Technical difference between "line break" and "newline"?

昨天我在 . While trying to specify the question with more tags, I realized that there are two similar tags available on Stack Overflow: and 添加了一个答案。

differentiation between LF and CR 很清楚。但是术语“换行符”和“换行符”有什么区别呢?他们不是彼此的同义词吗?

Stack Overflow 上的 摘录说:

Newline refers to [...] a line break.

... 而来自维基百科的 disambiguation page of "Line break" 说:

Line break may refer to [...] newline.

从那个“换行”页面:

To denote a single line break, Unix programs use line feed [...] while most programs common to [...] Windows use carriage return+line feed.

是否有任何技术标准或指南明确区分软件行业中的这两个术语?或者它们可以互换使用,没有技术差异?

我目前的假设是没有区别:“换行符”描述了 soft return (⇧ Shift+↵ Enter) 或 hard return (↵ Enter), 而“换行符”是“换行符”的技术术语,但具有相同的结果。

我将换行符解释为语义。当您看到 \n 时,您告诉排字员的话。 C语言的“new line”是换行的意思。这就好比ASCII中的A(0x41)是拉丁字母a的大写。所以一个名字,一个代码,一个意思。

就像“SP”(\u0020)是一个space字符。还有许多其他 space 字符:C 也将 TAB 识别为 space 字符。 HTML 将 新行 识别为 space 字符(而不是换行符(但在 <pre> 中)。

CR和LF是用ASCII定义的,一起使用是因为打字机通常是这样工作的,给更多的时间来移动(它们是串行连接的,所以有定时输入)。您可能会找到旧 ASCII 的扫描文档,了解控制字符的含义,但变化很大。 \0 现在是字符串的结尾,之前它只是一个填充字符(或退出序列)。 Apple 使用 CR,Unix LF 作为打字员用作换行符。

如果你想要一个名称和别名的列表,Unicode 提供了这样的名称(但通常会出现错误,所以 BELL 现在用于表情符号,所以 BEL 的旧别名不再有效,因为控制代码)。还有一些关于控制代码标准化的来源(主要用于转义序列等)。但这也不是完全的追随者。终端往往有怪癖。