【问题标题】:Technical difference between "line break" and "newline"?“换行”和“换行”之间的技术区别?
【发布时间】:2021-04-23 03:38:34
【问题描述】:

昨天我给How to add a line break to text in UI5?添加了一个答案。在尝试使用更多标签指定问题时,我意识到 Stack Overflow 上有两个类似的标签可用:

differentiation between LF and CR 非常清楚。但是“换行符”和“换行符”这两个术语有什么区别?他们不是同义词吗?

Stack Overflow 上的 摘录说:

换行是指[...] 换行

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

换行可以参考 [...] newline

从那个“换行”页面:

为了表示单个换行符,Unix 程序使用line feed [...] 而大多数Windows 通用的程序使用carriage return+line feed

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

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

【问题讨论】:

    标签: newline line-breaks newline string windows unix character-encoding newline


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-20
      • 2016-04-16
      • 2015-10-04
      • 2015-03-09
      • 2010-10-07
      • 2011-06-03
      相关资源
      最近更新 更多