首页 > 解决方案 > “换行”和“换行”之间的技术区别?

问题描述

昨天我添加了一个答案如何在 UI5 中为文本添加换行符?. 在尝试使用更多标签指定问题时,我意识到 Stack Overflow 上有两个类似的标签可用:

之间的区别LFCR非常明显。但是“换行符”和“换行符”这两个术语有什么区别?它们不是彼此的同义词吗?

Stack Overflow 上的摘录说:

换行是指 [...]换行符

...而维基百科的“换行符”的消歧页面说:

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

从那个“换行符”页面:

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

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

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

标签: stringwindowsunixcharacter-encodingnewline

解决方案


我将换行符解释为语义。当你看到一个\n. C语言“换行”的意思是换行。这就像AASCII 中的 (0x41) 是拉丁字母 a 的大写。所以一个名字,一个代码,一个意义。

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

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

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


推荐阅读